Browse Source

Patch Mono.Cecil to allow safe multi-threaded read access.

pull/10/head
Daniel Grunwald 15 years ago
parent
commit
7a81ab2e1e
  1. 16
      Mono.Cecil/Mono.Cecil/ModuleDefinition.cs

16
Mono.Cecil/Mono.Cecil/ModuleDefinition.cs

@ -757,18 +757,22 @@ namespace Mono.Cecil { @@ -757,18 +757,22 @@ namespace Mono.Cecil {
{
return Read (this, (_, reader) => reader.LookupToken (token));
}
readonly object module_lock = new object();
internal TRet Read<TItem, TRet> (TItem item, Func<TItem, MetadataReader, TRet> read)
{
var position = reader.position;
var context = reader.context;
lock (module_lock) {
var position = reader.position;
var context = reader.context;
var ret = read (item, reader);
var ret = read (item, reader);
reader.position = position;
reader.context = context;
reader.position = position;
reader.context = context;
return ret;
return ret;
}
}
void ProcessDebugHeader ()

Loading…
Cancel
Save