[Nickle] Boom

Keith Packard nickle@nickle.org
Mon, 17 Feb 2003 20:28:40 -0800


Around 16 o'clock on Feb 14, Bart Massey wrote:

  > int x = 0;
  > fork(x = 1);
  > Thread::join(%51)
  nickle: compile.c:2430: _CompileExpr: Assertion `0' failed.

Oops.  Couple of trivial bugs.  Note, however, that this syntax is not 
very useful any longer.  That's because threads are removed from the run 
queue when finished, so there's no way to map numbers to threads for 
completed threads; you have to save the thread object in a variable:

 	int	x = 0;
	thread t = fork (x = 1);
	Thread::join(t)

Looks like thread numbers are a whole lot less useful this way, but the 
alternative was to have exited threads clog up memory without serving any 
purpose in case someone "happened" to use the % notation in an expression.

-keith