1 Nov 2009 07:52
Re: -PRELIMINARY
Sam Steingold <sds <at> gnu.org>
2009-11-01 06:52:35 GMT
2009-11-01 06:52:35 GMT
> * Vladimir Tzankov <igmnaxbi <at> tznvy.pbz> [2009-10-31 20:15:36 +0200]:
>
> There is general (non MT) problem with this. If we do:
>
> [1]> (intern "SIMPLE-CONDITION-FORMAT-CONTROL-PRELIMINARY" "COMMON-LISP")
>
> ** - Continuable Error
> INTERN("SIMPLE-CONDITION-FORMAT-CONTROL-PRELIMINARY"): #<PACKAGE
> COMMON-LISP> is locked
> If you continue (by typing 'continue'): Ignore the lock and proceed
> The following restarts are also available:
> ABORT :R1 Abort main loop
> Break 1 [2]> continue
> COMMON-LISP::SIMPLE-CONDITION-FORMAT-CONTROL-PRELIMINARY ;
> NIL
> [3]> (do-symbols (sym "COMMON-LISP")
> (when (string-equal "SIMPLE-CONDITION-FORMAT-CONTROL-PRELIMINARY"
> (symbol-name sym))
> (print sym)))
>
> COMMON-LISP::SIMPLE-CONDITION-FORMAT-CONTROL-PRELIMINARY
> COMMON-LISP::SIMPLE-CONDITION-FORMAT-CONTROL-PRELIMINARY
> NIL
> [4]>
>
> We got two distinct internal symbols (caused by continuable error in
> package.d:intern()).
> In single thread build it does not happen normally (unless caused as
> above) since sys::symbol-suffix unlocks the package. With threads
> there are races on package lock bit and (rarely) we get this behavior
(Continue reading)
RSS Feed