This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: stack checking and threads


Aleksandar Bakic <bakicale@cps.msu.edu> writes:

> Yes, but what if I access GUILE from a thread different from the one
> in which GUILE was initialized? `eval' will report stack overflow as
> soon as it checks the stack, because it is not the same stack GUILE
> was initialized with.

Look again on my first reply.  I say there that Guile will likely
crash if you call it from another thread.  So there is no use
supporting stack checking.  You should not call Guile from two
different OS threads.

> > > Q: Can Guile be extended to work with OS threads?
> > > 
> > > A: Yes, but it is a fair amount of work to do so.
> > 
> > And still, new threads will have to be created with Guile primitives
> > for this to work.

> This is what I meant by the possible extention. I didn't mean the
> GUILE threads that can be created with Scheme primitives, but threads
> in user C/C++ code, independent of whatever thread support is
> available in GUILE. In particular, I thought there could be a GUILE
> call (something similar to the one that disables interrupts) during
> evaluation invoked from a thread different from the one in which GUILE
> was initialized.

It can't.  There are good technical reasons for this.  Sorry.

/mdj