[racket] pthreads, futures, and building racket 5.0.1 from source

From: David T. Pierson (dtp at mindstory.com)
Date: Wed Sep 1 19:58:40 EDT 2010

Hello all,

I am compiling racket 5.0.1 for a Debian GNU/Linux system on an x86_64
machine.

I ran configure with no arguments, but noticed during the subsequent
make that files were being compiled with -pthread.

This concerned me because the src/README contains a warning about
pthreads:

> Unfortunately, Racket's normal stack handling and use of signals (for
> its own thread scheduling) do not interact well with pthreads.  Thus,
> when pthreads are enabled, Racket and GRacket cannot use interupt
> timers, and the stack is limited to 1MB.  These restrictions can degrade
> performance and thread-responsiveness.

Rerunning configure with --disable-pthread still did not disable
pthreads.  After examining the configure script I determined that
--disable-futures was what was needed to disable pthreads, which makes
sense.

I have no need for futures at the present time but I am working on a
project that will use racket threads extensively, so disabling futures
seems like the way to go (assuming the warning about performance is
still true.)

Perhaps the warning in the README should be updated to indicate that
futures also require pthreads.

Thanks.

David


Posted on the users mailing list.