RE: [Haskell-cafe] killing a running thread interactively

2005-09-23 Thread Simon Marlow
Haskell doesn't, but the compilers all support a kind of global mutable
variable.  See various lengthy discussions on the topic on this list and
the Haskell list in the past.  Briefly, you do it like this:

{-# NOILINE var #-}
var :: IORef [ThreadId]
var = unsafePerformIO (newIORef [])

and if you're using GHC, compile the module with -fno-cse.

Cheers,
Simon

On 22 September 2005 17:58, S. Alexander Jacobson wrote:

 Ok, I didn't think Haskell had mutable global variables.
 How would this work?
 
 -ALex-
 
 On Thu, 22 Sep 2005, Simon Marlow wrote:
 
 There's no getAllThreadIds or similar right now.  You have to save
 the ThreadIds yourself, perhaps in a global variable.  Writing to a
 file doesn't work because there's no instance Read ThreadId.
 
 Cheers,
  Simon
 
 On 21 September 2005 21:14, S. Alexander Jacobson wrote:
 
 More particularly, is there a getAllThreadIds function somewhere?
 
 -Ale-
 
 On Wed, 21 Sep 2005, S. Alexander Jacobson wrote:
 
 Is the general pattern to write all threadIds to a file, and then
 have a separate function that takes the file and kills them?
 
 Or is there something more clever?
 
 -Alex-
 
 On Wed, 21 Sep 2005, Simon Marlow wrote:
 
 On 16 September 2005 20:42, S. Alexander Jacobson wrote:
 
 If I am running a server interactively. (using ghci).
 Is there any way to kill its running threads without terminating
 the interpreter?
 
 If you can get ThreadIds for the threads, yes.  GHCi doesn't
 (currently) create a new thread for each expression evaluation, so
 attempting to kill that thread might kill your GHCi session (it
 shouldn't but that's another story).
 
 Cheers,
   Simon
 
 ** CRM114 Whitelisted by: [EMAIL PROTECTED] **
 
 
 __
 S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
 
 
 __
 S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
 
 ** CRM114 Whitelisted by: [EMAIL PROTECTED] **
 
 
 __
 S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] killing a running thread interactively

2005-09-22 Thread Simon Marlow
There's no getAllThreadIds or similar right now.  You have to save the
ThreadIds yourself, perhaps in a global variable.  Writing to a file
doesn't work because there's no instance Read ThreadId.

Cheers,
Simon

On 21 September 2005 21:14, S. Alexander Jacobson wrote:

 More particularly, is there a getAllThreadIds function somewhere?
 
 -Ale-
 
 On Wed, 21 Sep 2005, S. Alexander Jacobson wrote:
 
 Is the general pattern to write all threadIds to a file, and then
 have a separate function that takes the file and kills them?
 
 Or is there something more clever?
 
 -Alex-
 
 On Wed, 21 Sep 2005, Simon Marlow wrote:
 
 On 16 September 2005 20:42, S. Alexander Jacobson wrote:
 
 If I am running a server interactively. (using ghci).
 Is there any way to kill its running threads without terminating
 the interpreter?
 
 If you can get ThreadIds for the threads, yes.  GHCi doesn't
 (currently) create a new thread for each expression evaluation, so
 attempting to kill that thread might kill your GHCi session (it
 shouldn't but that's another story). 
 
 Cheers,
 Simon
 
 ** CRM114 Whitelisted by: [EMAIL PROTECTED] **
 
 
 __
 S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
 
 
 __
 S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] killing a running thread interactively

2005-09-22 Thread S. Alexander Jacobson

Ok, I didn't think Haskell had mutable global variables.
How would this work?

-ALex-

On Thu, 22 Sep 2005, Simon Marlow wrote:


There's no getAllThreadIds or similar right now.  You have to save the
ThreadIds yourself, perhaps in a global variable.  Writing to a file
doesn't work because there's no instance Read ThreadId.

Cheers,
Simon

On 21 September 2005 21:14, S. Alexander Jacobson wrote:


More particularly, is there a getAllThreadIds function somewhere?

-Ale-

On Wed, 21 Sep 2005, S. Alexander Jacobson wrote:


Is the general pattern to write all threadIds to a file, and then
have a separate function that takes the file and kills them?

Or is there something more clever?

-Alex-

On Wed, 21 Sep 2005, Simon Marlow wrote:


On 16 September 2005 20:42, S. Alexander Jacobson wrote:


If I am running a server interactively. (using ghci).
Is there any way to kill its running threads without terminating
the interpreter?


If you can get ThreadIds for the threads, yes.  GHCi doesn't
(currently) create a new thread for each expression evaluation, so
attempting to kill that thread might kill your GHCi session (it
shouldn't but that's another story).

Cheers,
Simon

** CRM114 Whitelisted by: [EMAIL PROTECTED] **



__
S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com



__
S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com


** CRM114 Whitelisted by: [EMAIL PROTECTED] **



__
S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] killing a running thread interactively

2005-09-21 Thread Simon Marlow
On 16 September 2005 20:42, S. Alexander Jacobson wrote:

 If I am running a server interactively. (using ghci).
 Is there any way to kill its running threads without terminating the
 interpreter?

If you can get ThreadIds for the threads, yes.  GHCi doesn't (currently)
create a new thread for each expression evaluation, so attempting to
kill that thread might kill your GHCi session (it shouldn't but that's
another story).

Cheers,
Simon
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] killing a running thread interactively

2005-09-21 Thread S. Alexander Jacobson
Is the general pattern to write all threadIds to a file, and then have 
a separate function that takes the file and kills them?


Or is there something more clever?

-Alex-

On Wed, 21 Sep 2005, Simon Marlow wrote:


On 16 September 2005 20:42, S. Alexander Jacobson wrote:


If I am running a server interactively. (using ghci).
Is there any way to kill its running threads without terminating the
interpreter?


If you can get ThreadIds for the threads, yes.  GHCi doesn't (currently)
create a new thread for each expression evaluation, so attempting to
kill that thread might kill your GHCi session (it shouldn't but that's
another story).

Cheers,
Simon

** CRM114 Whitelisted by: [EMAIL PROTECTED] **



__
S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe