Browse thread
Marshaling of custom blocks and threads
-
Jocelyn Serot
- Xavier Leroy
-
Ken Wakita
- Gerd Stolpmann
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2000-11-29 (20:51) |
From: | Gerd Stolpmann <gerd@g...> |
Subject: | Re: Marshaling of custom blocks and threads |
On Tue, 28 Nov 2000, Ken Wakita wrote: >I think the Marshal module is thread unsafe because it uses a shared >buffer to produce the external image of the ML objects. In 2.04, this was definitely true (see http://caml.inria.fr/bin/caml-bugs/fixed?id=24;page=1;user=guest and http://caml.inria.fr/bin/caml-bugs/fixed?id=25page=1;user=guest). However, the bug was still subtle; the shared buffers were relatively well protected by the so-called "master lock". Until now, I thought that 3.00 fixed the bug finally; i.e. the master lock really locked the shared buffer. (I checked the code.) Jocelyn Serot reports that Marshal is not thread-safe for custom blocks. These did not exist in 2.04, so I suppose that only the new parts of the marshalling system do not work properly enough. However, multi-threading programming is error-prone, so it would be helpful to have a small program that demonstrates the bug (normally it is sufficient to repeat the errorneous piece of code often enough (e.g. 10000 times) to reproduce the incorrect behaviour). Gerd -- ---------------------------------------------------------------------------- Gerd Stolpmann Telefon: +49 6151 997705 (privat) Viktoriastr. 100 64293 Darmstadt EMail: gerd@gerd-stolpmann.de Germany ----------------------------------------------------------------------------