Hi!
I am trying to understand how multitasking works under Lucid Common
Lisp and am not getting very far.
After reading through the manual I tried:
(setf *p1
(make-process :name "play"
:function #'(lambda(filename) (loop
(when *continue*
(play filename ))))
:args (list *beep* )))
play is a simple function which does:
(shell
(concatenate 'string
"play -v 1 -h "
file ))
and *continue* is a global variable.
Now when I evaluate the above setf form and then set *continue* to T
lisp starts playing the sound file that *beep* points to.
If I toggle the variable *continue* the sound stops, resumes if I
toggle again.
All this is as expected.
However if I do
(kill-process *p1 )
and then do (process-state *p1)
it shows up as :killed,
but now here's the surprising thing:
setting *continue* to T resumes the playing of the sound.
So what's playing the sound if the process *p1 has been killed?
And how do I get rid of *p1 entirely?
Thanks,
--Raman
--
T. V. Raman <·····@cs.cornell.edu>Tel: (607)255-9202 R 272-3649
Office: 4116 Upson Hall,
Department of Computer Science, Cornell University Ithaca NY 14853-6201
Res: 226 Bryant Avenue Ithaca NY 14850