9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* alef bug
@ 1995-11-16 20:27 forsyth
  0 siblings, 0 replies; only message in thread
From: forsyth @ 1995-11-16 20:27 UTC (permalink / raw)


a student found an unpleasant feature of !{} which turns out to be a bug
on closer examination.  for example:

#include <alef.h>

void
crit2 (void)
!{
	print ("world\n");
}

void
crit1 (void)
!{
	print ("hello\n");
	crit2 ();
}

void
main (void)
{
	crit1 ();
}

this locks up because internnode uses
sprint(buf, ".i%d", stmp++);
but stmp is reset by fundecl (possibly right for some calls of internnode,
but not in this case).  the result is that several !{} in different functions
end up using the same synchronisation variable (but not if they appear
in the same function, or different source files).






^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1995-11-16 20:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1995-11-16 20:27 alef bug forsyth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).