Hi Linas,

"Linas Vepstas" <[EMAIL PROTECTED]> writes:

> void * scm_one (void *p)
> {
>       prtdbg("thread one");
>       scm_c_eval_string ("(define x \"asddf\")\n");
> }
>
> void * scm_two (void *p)
> {
>       prtdbg("thread two");
>       scm_c_eval_string ("(display x)\n");
> }

AFAICS, there's not proper synchronization between these two threads
(e.g., a barrier), so it could be that thread 1 gets to define `x' after
thread 2 attempts to access it.  Sure, there's a "sleep (1);", but a
barrier would make sure we're not seeing such a case.

Can you add proper synchronization and see if the problem is still here?

Thanks,
Ludo'.



Reply via email to