Dan Sugalski <[EMAIL PROTECTED]> wrote:
> On Wed, 3 Sep 2003, Leopold Toetsch wrote:

>> Then we might get deadlocks.

> This is always a possibility, and there isn't anything we can do about it
> at the interpreter level. Deadlocks are an unfortunate fact of life in a
> threaded environment.

clone() isn't supposed to deadlock, nor freeze(), nor dump(). They
officially do not change (or shouldn't change) anything in the PMCs they
operate on. These methods just passively iterate over PMCs.

To work against that, we would have to implement shared PMCs as:
- first COWed (updating next_for_GC doesn't change this state)
- if any thread updates the PMC unCOW the PMCs and
- communicate via events such changes to other threads - horrid.

Dan, that clone/freeze/dump... scheme doesn't work.

>                                       Dan

leo

Reply via email to