Opened 10 years ago

Closed 10 years ago

#616 closed defect (fixed)

delete-package thread (non) safety

Reported by: rme Owned by:
Priority: normal Milestone:
Component: other Version: trunk
Keywords: Cc:

Description

(dotimes (i 1000)
  (if (evenp i)
    (process-run-function
      "creator"
      (lambda ()
        (ignore-errors (delete-package :foo))
        (make-package :foo)))
    (process-run-function
      "user"
      (lambda ()
        (ignore-errors (intern "FOO" :foo))))))

Running this a time or two in an x8632 lisp results in errors of the form:

> Error: Fault during read of memory address #x-34F3EA94
> While executing: DELETE-PACKAGE, in process creator(1458).

It appears that delete-package reads/modifies %all-packages% without using the associated locks.

Change History (2)

comment:1 Changed 10 years ago by rme

(In [13100]) Use package-list locks in DELETE-PACKAGE. (See ticket:616)

comment:2 Changed 10 years ago by rme

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.