И особенно те, что открывает hunchentoot
slime-list-threads показывает список потоков. По названию легко определишь те, что создал hunchentoot.
Другой способ:
(bordeaux-threads:all-threads)
Я неправильно спросил, мне нужны потоки ввода-вывода , stream, который. До многопоточности я еще не дорос.
Посмотрел список, ничего мне это знание не дало.
> Я неправильно спросил, мне нужны потоки ввода-вывода , stream, который.
Хм, а что ты будешь с ними делать?
Ну можно, наверное, перебрать все объекты и найти там streams, но зачем?
Не очень понимаю, как через *standard-output*в функции, вызванной через (hunchentoot:create-prefix-dispatcher выводится в браузер, а как в *slime-repl sbcl*
Для этого тебе надо разобраться не с потоками, а со специальными переменными, у нас есть хорошая статья:
Переменные в Common Lisp.
#<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {10001ED533}>
#<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {10001C44A3}>
куда ведут?
> куда ведут?Куда угодно. Зависит от окружения, которое можно изменить с помощью
let.
Не соображу как передавать данные из браузера в функцию в произвольном месте (через read) и обратно. Что бы функция ждала эти данные. Примерно, как диалоговый ввод-вывод на терминал.
Ну в *slime-repl sbcl* выводятся. Кликаю мышкой в браузере и в *slime-repl выводятся данные. Может можно их прочитать из программы?
> Кликаю мышкой в браузере и в *slime-repl выводятся данные.
А что у тебя там запущенно? Для начала предлагаю разобраться с HTTP.
;;;
;;; Здесь рисуем кнопочки
;;;
(defun button ()
(with-html-output (*standard-output*)
(:div :id "botton" :class "btn"
:onclick "$.ajax ({type: \"GET\", url: \"/myweb/capture\", data: \"game-choice=ПОВТОР\", dataType: \"HTML\"})"
:style "position: absolute; top: 102px; left: 0px; z-index: 55; height: 18px; width: 110px; visibility: visible;" "ПОВТОР")
(:div :id "botton" :class "btn"
:onclick "$.ajax ({type: \"GET\", url: \"/myweb/capture\", data: \"game-choice=НОВАЯ\", dataType: \"HTML\"})"
:style "position: absolute; top: 130px; left: 0px; z-index: 55; height: 18px; width: 110px; visibility: visible;" "НОВАЯ")))
;;;
;;; Здесь обрабатываем "click"
;;;
(defun read-param ()
(pprint (get-parameter "game-choice") cl-user:*alt-stream*))
pprint выводит repl. А я думал, что можно где-то "подвесить" read , который бы эти данные ждал и получал.
Таки предлагаю для начала прочитать хотя бы краткое описание
HTTP.