Jost,

At the moment I am only using the thread ID in trace messages, so if I can 
safely ignore the overflow, then I will so.

Seth

On Wed, 21 Jun 2006 10:28:43 +0200
Jost Berthold <[EMAIL PROTECTED]> wrote:

> Hi Seth,
> 
> perhaps this will help you, some information from the implementation 
> side concerning your question about threadIDs:
> 
> Related code lived in rts/Schedule.c, has recently moved to 
> rts/Threads.* in the head.
> 
> The ThreadID assigned by the RTS is continuously increasing, and 
> declared to be StgInt32 (32 bits usually).
> So you might get int overflows when running your server for a *fairly* 
> long time. OTOH, depending on what you want to do with the ThreadIDs 
> that forkIO returns, IMHO you could just *ignore* these overflows.
> 
>  From your short description of how the servers work, you know an upper 
> bound on the no. of running threads (6), but not on their time to live.
> So IMHO the worst case scenario would be:
>       a new thread for a client gets ID n
>       ... 2^32 other server threads get spawned
>       another new thread for a client gets the same ID n again
>       ...
>       one of the threads supposed to terminate (killThread n)
> 
> AFAICT, the killThread action will arbitrarily choose one of the two.
> 
> HTH
> Jost
> 
> ------ you wrote ------
> Date: Tue, 20 Jun 2006 23:22:26 -0400
> From: Seth Kurtzberg <[EMAIL PROTECTED]>
> Subject: Re: FFI: number of worker threads?
> To: "Li, Peng" <[EMAIL PROTECTED]>
> Cc: [email protected]
> 
> Another related question.  I have some threaded applications running 
> which are servers and run continuously.  A thread is spawned for each 
> new connection, and the thread exits when the client terminates.
> 
> I've noticed that the thread ID increases.  On one process I checked 
> today I am up to thread number 3300.  The number of running threads is 
> not increasing; only six threads are running on this particular process. 
>   The threads are cleaned up and exit.  The thread _ID_ is continually 
> increasing.
> 
> Is this going to cause a problem when the thread ID exceeds some value? 
>   Do I have to force the server process to recycle periodically?
> ...
> 
> 
> 
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to