summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Johanson <latexer@gentoo.org>2006-11-10 22:52:13 +0000
committerPeter Johanson <latexer@gentoo.org>2006-11-10 22:52:13 +0000
commitcdaac7b1af91f8e93bcb4a44d884399e3d0f9254 (patch)
treec7f01c3f5d9ed624432da16ce5d5cbcf0730eecd /dev-lang/mono/files
parentBump to 1.2, and do some long over due house cleaning. (diff)
downloadgentoo-2-cdaac7b1af91f8e93bcb4a44d884399e3d0f9254.tar.gz
gentoo-2-cdaac7b1af91f8e93bcb4a44d884399e3d0f9254.tar.bz2
gentoo-2-cdaac7b1af91f8e93bcb4a44d884399e3d0f9254.zip
Bump to 1.2, and do some long over due house cleaning.
(Portage version: 2.1.2_pre1-r4) (Unsigned Manifest commit)
Diffstat (limited to 'dev-lang/mono/files')
-rw-r--r--dev-lang/mono/files/digest-mono-1.0.5-r56
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.12.1-r13
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.13.13
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.13.23
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.13.43
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.13.63
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.13.83
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.17.13
-rw-r--r--dev-lang/mono/files/digest-mono-1.1.8.33
-rw-r--r--dev-lang/mono/files/mcs-1.0.5-pathfix.diff12
-rw-r--r--dev-lang/mono/files/mono-1.1.5-icu-linking.diff11
-rw-r--r--dev-lang/mono/files/mono-1.1.5-pathfix.diff12
-rw-r--r--dev-lang/mono/files/mono-1.1.5-r42108.diff11
-rw-r--r--dev-lang/mono/files/mono-1.1.5-r42122.diff40
-rw-r--r--dev-lang/mono/files/mono-1.1.6-r42300.diff36
-rw-r--r--dev-lang/mono/files/mono-1.1.7-ppc-tls.diff13
-rw-r--r--dev-lang/mono/files/mono-1.1.8.3-array-getvalue.diff34
-rw-r--r--dev-lang/mono/files/mono-1.1.8.3-icall.diff10
-rw-r--r--dev-lang/mono/files/mono-1.1.9.1-io-layer-fix.diff206
19 files changed, 0 insertions, 415 deletions
diff --git a/dev-lang/mono/files/digest-mono-1.0.5-r5 b/dev-lang/mono/files/digest-mono-1.0.5-r5
deleted file mode 100644
index 0e400a6d560a..000000000000
--- a/dev-lang/mono/files/digest-mono-1.0.5-r5
+++ /dev/null
@@ -1,6 +0,0 @@
-MD5 aa1d0acf06eb9ba8e87b5bec1b860e1b mcs-1.0.5.tar.gz 22283191
-RMD160 1d5a85a4da6d422737ab7e9c866e32bd1439440b mcs-1.0.5.tar.gz 22283191
-SHA256 0c493f3bb9ac3396926ca1cb173d6a481be4fd563907ce89df26824da1a412d2 mcs-1.0.5.tar.gz 22283191
-MD5 09c9b5e7a128e7607e79d4d35bf76f68 mono-1.0.5.tar.gz 18477749
-RMD160 7486e68adbd8f59b3c706e66c3f6edf862928d7d mono-1.0.5.tar.gz 18477749
-SHA256 7129baba97816695ec87bf5abedc34a4ffa3295e98e6b2f826cd0bb0831b599f mono-1.0.5.tar.gz 18477749
diff --git a/dev-lang/mono/files/digest-mono-1.1.12.1-r1 b/dev-lang/mono/files/digest-mono-1.1.12.1-r1
deleted file mode 100644
index ae46a65cb63d..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.12.1-r1
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 1afd911a96a0032b5d1c13656a5d0369 mono-1.1.12.1.tar.gz 17899010
-RMD160 4e008bb159549e964e4ea8937ed95d731fb6453f mono-1.1.12.1.tar.gz 17899010
-SHA256 6f2b0ba748dc2571981c7280ba9a7c9c4498c1bca872be1f5ac33015b138e3cd mono-1.1.12.1.tar.gz 17899010
diff --git a/dev-lang/mono/files/digest-mono-1.1.13.1 b/dev-lang/mono/files/digest-mono-1.1.13.1
deleted file mode 100644
index 0d79fc6a5faf..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.13.1
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 b019e29082aa49267320c3993efcc385 mono-1.1.13.1.tar.gz 17989571
-RMD160 415e958674bed0b5feb380809bcfb85e14617f97 mono-1.1.13.1.tar.gz 17989571
-SHA256 79b757e744cc19fd02ed74a51ffaca16d4b4f7124da43a845c99200c0e3868df mono-1.1.13.1.tar.gz 17989571
diff --git a/dev-lang/mono/files/digest-mono-1.1.13.2 b/dev-lang/mono/files/digest-mono-1.1.13.2
deleted file mode 100644
index b2064ee02db2..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.13.2
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 3542a83b2743b189b3422b9f40266258 mono-1.1.13.2.tar.gz 18043178
-RMD160 64ad831d21ea067146ac94ec9363f45ae365aeea mono-1.1.13.2.tar.gz 18043178
-SHA256 00cbb15edf1f7d5bfa96a9a30a564d555420a955ed7da777b786ebd362d8239c mono-1.1.13.2.tar.gz 18043178
diff --git a/dev-lang/mono/files/digest-mono-1.1.13.4 b/dev-lang/mono/files/digest-mono-1.1.13.4
deleted file mode 100644
index f9ac15b454bb..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.13.4
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 a8c58b1d0722771745c228adbb27f3c1 mono-1.1.13.4.tar.gz 18107270
-RMD160 761b3df0be4552e4d8e67f0e6cef6e7c9b3dc9b3 mono-1.1.13.4.tar.gz 18107270
-SHA256 203e4a93001207eed2463f12d024415a0f6c314eb6ba4f9835cae6eb777d4a6e mono-1.1.13.4.tar.gz 18107270
diff --git a/dev-lang/mono/files/digest-mono-1.1.13.6 b/dev-lang/mono/files/digest-mono-1.1.13.6
deleted file mode 100644
index a505efaf8648..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.13.6
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 330cc66c6a44525950daf10c4f17c10e mono-1.1.13.6.tar.gz 18217583
-RMD160 f8a07beeaf46fb873715809525157034effd4b0b mono-1.1.13.6.tar.gz 18217583
-SHA256 ec60e3b670752c3453dfe8b76af0c1a17d60e81c842b375af7d3966d84329ea6 mono-1.1.13.6.tar.gz 18217583
diff --git a/dev-lang/mono/files/digest-mono-1.1.13.8 b/dev-lang/mono/files/digest-mono-1.1.13.8
deleted file mode 100644
index 4edd894b09d2..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.13.8
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 6461a4e90d47ca5d7e224381cce627cc mono-1.1.13.8.tar.gz 17758074
-RMD160 c742a4f3302e184bd532b30fbce8e87cb99def44 mono-1.1.13.8.tar.gz 17758074
-SHA256 bc3f7317c2058a2d84d0d08193826897704544df001d9657cfa06bcc4778db32 mono-1.1.13.8.tar.gz 17758074
diff --git a/dev-lang/mono/files/digest-mono-1.1.17.1 b/dev-lang/mono/files/digest-mono-1.1.17.1
deleted file mode 100644
index b1bf82265320..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.17.1
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 072cb3de1f19cbebd6034f7a5cff1292 mono-1.1.17.1.tar.gz 19352812
-RMD160 664c46d1b81015c427177ab6a704d2bda5a3ad82 mono-1.1.17.1.tar.gz 19352812
-SHA256 abc547c45952152a4aebd3923790f651ce32c5535ea1de3aae031fba2a06b489 mono-1.1.17.1.tar.gz 19352812
diff --git a/dev-lang/mono/files/digest-mono-1.1.8.3 b/dev-lang/mono/files/digest-mono-1.1.8.3
deleted file mode 100644
index 33b2990a9feb..000000000000
--- a/dev-lang/mono/files/digest-mono-1.1.8.3
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 5aefdc915cbd6ed84834692f59b92080 mono-1.1.8.3.tar.gz 15348432
-RMD160 a012252c76797c230cb9a62ee713314a44325932 mono-1.1.8.3.tar.gz 15348432
-SHA256 f0fc905d24074297402c746487d13cf53c331b20e0fcf1421cbb05cd2ca6392b mono-1.1.8.3.tar.gz 15348432
diff --git a/dev-lang/mono/files/mcs-1.0.5-pathfix.diff b/dev-lang/mono/files/mcs-1.0.5-pathfix.diff
deleted file mode 100644
index fdfd271ebbc8..000000000000
--- a/dev-lang/mono/files/mcs-1.0.5-pathfix.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -aur mcs-1.0.5-orig/class/corlib/System.IO/Path.cs mcs-1.0.5/class/corlib/System.IO/Path.cs
---- mcs-1.0.5-orig/class/corlib/System.IO/Path.cs 2004-12-07 17:29:31.000000000 -0500
-+++ mcs-1.0.5/class/corlib/System.IO/Path.cs 2004-12-15 20:45:25.060090272 -0500
-@@ -386,7 +386,7 @@
- //if (root == path) return path;
-
- // STEP 3: split the directories, this gets rid of consecutative "/"'s
-- string [] dirs = path.Split (DirectorySeparatorChar, AltDirectorySeparatorChar);
-+ string [] dirs = path.Split (DirectorySeparatorChar);
- // STEP 4: Get rid of directories containing . and ..
- int target = 0;
-
diff --git a/dev-lang/mono/files/mono-1.1.5-icu-linking.diff b/dev-lang/mono/files/mono-1.1.5-icu-linking.diff
deleted file mode 100644
index 6ba1b8a89267..000000000000
--- a/dev-lang/mono/files/mono-1.1.5-icu-linking.diff
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -aur mono-1.1.5-orig/mono/metadata/Makefile.am mono-1.1.5/mono/metadata/Makefile.am
---- mono-1.1.5-orig/mono/metadata/Makefile.am 2005-03-16 11:18:25.000000000 -0500
-+++ mono-1.1.5/mono/metadata/Makefile.am 2005-03-26 18:08:34.000000000 -0500
-@@ -29,6 +29,7 @@
-
- CLEANFILES = mono-bundle.stamp
-
-+libmonoruntime_la_LIBADD = $(ICU_LIBS)
- libmonoruntime_static_la_LIBADD = $(bundle_obj) $(PLATFORM_LIB) $(libmonoruntime_la_LIBADD)
-
- libmonoruntime_la_SOURCES = \
diff --git a/dev-lang/mono/files/mono-1.1.5-pathfix.diff b/dev-lang/mono/files/mono-1.1.5-pathfix.diff
deleted file mode 100644
index 01eb67f1c881..000000000000
--- a/dev-lang/mono/files/mono-1.1.5-pathfix.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -aur mono-1.1.4-orig/mcs/class/corlib/System.IO/Path.cs mono-1.1.4/mcs/class/corlib/System.IO/Path.cs
---- mono-1.1.4-orig/mcs/class/corlib/System.IO/Path.cs 2005-02-05 14:42:23.000000000 -0500
-+++ mono-1.1.4/mcs/class/corlib/System.IO/Path.cs 2005-02-22 21:00:50.122250160 -0500
-@@ -387,7 +387,7 @@
- //if (root == path) return path;
-
- // STEP 3: split the directories, this gets rid of consecutative "/"'s
-- string [] dirs = path.Split (DirectorySeparatorChar, AltDirectorySeparatorChar);
-+ string [] dirs = path.Split (DirectorySeparatorChar);
- // STEP 4: Get rid of directories containing . and ..
- int target = 0;
-
diff --git a/dev-lang/mono/files/mono-1.1.5-r42108.diff b/dev-lang/mono/files/mono-1.1.5-r42108.diff
deleted file mode 100644
index 6b180e740807..000000000000
--- a/dev-lang/mono/files/mono-1.1.5-r42108.diff
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -aur mono-1.1.5-orig/mono/metadata/metadata.c mono-1.1.5/mono/metadata/metadata.c
---- mono-1.1.5-orig/mono/metadata/metadata.c 2005-03-16 11:18:22.000000000 -0500
-+++ mono-1.1.5/mono/metadata/metadata.c 2005-03-22 23:50:27.000000000 -0500
-@@ -551,6 +551,7 @@
- g_assert (i == 4 || i == 5);
- field_size = i == 4 ? idx_size (MONO_TABLE_FIELD):
- idx_size(MONO_TABLE_METHOD);
-+ break;
- case MONO_TABLE_GENERICPARAM:
- g_assert (i == 2 || i == 4 || i == 5);
- if (i == 2)
diff --git a/dev-lang/mono/files/mono-1.1.5-r42122.diff b/dev-lang/mono/files/mono-1.1.5-r42122.diff
deleted file mode 100644
index a9888e94b91f..000000000000
--- a/dev-lang/mono/files/mono-1.1.5-r42122.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-Index: mono/mini/exceptions-ppc.c
-===================================================================
---- mono/mini/exceptions-ppc.c (revision 42121)
-+++ mono/mini/exceptions-ppc.c (working copy)
-@@ -199,6 +199,7 @@
- ppc_break (code);
-
- g_assert ((code - start) < sizeof(start));
-+ mono_arch_flush_icache (start, code - start);
- return start;
- }
-
-@@ -268,6 +269,7 @@
- ppc_blr (code);
-
- g_assert ((code - start) < sizeof(start));
-+ mono_arch_flush_icache (start, code - start);
- return start;
- }
-
-@@ -371,6 +373,7 @@
- /* we should never reach this breakpoint */
- ppc_break (code);
- g_assert ((code - start) < size);
-+ mono_arch_flush_icache (start, code - start);
- return start;
- }
-
-Index: mono/mini/tramp-ppc.c
-===================================================================
---- mono/mini/tramp-ppc.c (revision 42121)
-+++ mono/mini/tramp-ppc.c (working copy)
-@@ -537,6 +537,7 @@
- if (notification_address)
- *notification_address = buf;
- ppc_blr (buf);
-+ mono_arch_flush_icache (ptr, buf - ptr);
-
- return ptr;
- }
diff --git a/dev-lang/mono/files/mono-1.1.6-r42300.diff b/dev-lang/mono/files/mono-1.1.6-r42300.diff
deleted file mode 100644
index 8688bb0fb8ac..000000000000
--- a/dev-lang/mono/files/mono-1.1.6-r42300.diff
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -aur mono-1.1.6-orig/mono/mini/cpu-amd64.md mono-1.1.6/mono/mini/cpu-amd64.md
---- mono-1.1.6-orig/mono/mini/cpu-amd64.md 2005-03-30 16:26:18.000000000 -0500
-+++ mono-1.1.6/mono/mini/cpu-amd64.md 2005-04-11 23:12:10.000000000 -0400
-@@ -289,8 +289,8 @@
- storei4_membase_imm: dest:b len:13
- storei4_membase_reg: dest:b src1:i len:9
- storei8_membase_imm: dest:b len:18
--storer4_membase_reg: dest:b src1:f len:14
--storer8_membase_reg: dest:b src1:f len:9
-+storer4_membase_reg: dest:b src1:f len:15
-+storer8_membase_reg: dest:b src1:f len:10
- load_membase: dest:i src1:b len:15
- loadi1_membase: dest:i src1:b len:9
- loadu1_membase: dest:i src1:b len:9
-diff -aur mono-1.1.6-orig/mono/mini/mini-amd64.c mono-1.1.6/mono/mini/mini-amd64.c
---- mono-1.1.6-orig/mono/mini/mini-amd64.c 2005-03-30 16:26:18.000000000 -0500
-+++ mono-1.1.6/mono/mini/mini-amd64.c 2005-04-11 23:12:10.000000000 -0400
-@@ -5383,11 +5383,13 @@
- patch_info->type = MONO_PATCH_INFO_INTERNAL_METHOD;
- patch_info->ip.i = code - cfg->native_code;
-
-- if (mono_compile_aot)
-+ if (mono_compile_aot) {
- amd64_mov_reg_membase (code, GP_SCRATCH_REG, AMD64_RIP, 0, 8);
-- else
-- amd64_set_reg_template (code, GP_SCRATCH_REG);
-- amd64_call_reg (code, GP_SCRATCH_REG);
-+ amd64_call_reg (code, GP_SCRATCH_REG);
-+ } else {
-+ /* The callee is in memory allocated using the code manager */
-+ amd64_call_code (code, 0);
-+ }
-
- amd64_mov_reg_imm (buf, AMD64_RSI, (code - cfg->native_code) - throw_ip);
- while (buf < buf2)
-Only in mono-1.1.6/mono/mini: mini-amd64.c.orig
diff --git a/dev-lang/mono/files/mono-1.1.7-ppc-tls.diff b/dev-lang/mono/files/mono-1.1.7-ppc-tls.diff
deleted file mode 100644
index fe3c7ed1f8b9..000000000000
--- a/dev-lang/mono/files/mono-1.1.7-ppc-tls.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: mono/utils/mono-compiler.h
-===================================================================
---- mono/utils/mono-compiler.h (revision 45339)
-+++ mono/utils/mono-compiler.h (working copy)
-@@ -11,6 +11,8 @@
-
- #if defined(PIC) && defined(__x86_64__)
- #define MONO_TLS_FAST
-+#elif defined (__powerpc__)
-+#define MONO_TLS_FAST
- #else
- #define MONO_TLS_FAST __attribute__((tls_model("local-exec")))
- #endif
diff --git a/dev-lang/mono/files/mono-1.1.8.3-array-getvalue.diff b/dev-lang/mono/files/mono-1.1.8.3-array-getvalue.diff
deleted file mode 100644
index b679620022cc..000000000000
--- a/dev-lang/mono/files/mono-1.1.8.3-array-getvalue.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -aur mono-1.1.8.2-orig/mcs/class/corlib/System/Array.cs mono-1.1.8.2/mcs/class/corlib/System/Array.cs
---- mono-1.1.8.2-orig/mcs/class/corlib/System/Array.cs 2005-06-04 14:00:46.000000000 -0400
-+++ mono-1.1.8.2/mcs/class/corlib/System/Array.cs 2005-07-25 21:18:09.000000000 -0400
-@@ -188,10 +188,10 @@
- public extern int GetLowerBound (int dimension);
-
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
-- public extern object GetValue (int[] indices);
-+ public extern object GetValue (params int[] indices);
-
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
-- public extern void SetValue (object value, int[] indices);
-+ public extern void SetValue (object value, params int[] indices);
-
- // CAUTION! No bounds checking!
- [MethodImplAttribute (MethodImplOptions.InternalCall)]
-@@ -486,7 +486,7 @@
- }
-
- [ComVisible (false)]
-- public object GetValue (long [] indices)
-+ public object GetValue (params long [] indices)
- {
- if (indices == null) {
- // LAMESPEC: Docs say we should throw a ArgumentNull, but .NET
-@@ -497,7 +497,7 @@
- }
-
- [ComVisible (false)]
-- public void SetValue (object value, long [] indices)
-+ public void SetValue (object value, params long [] indices)
- {
- if (indices == null) {
- // LAMESPEC: Docs say we should throw a ArgumentNull, but .NET
diff --git a/dev-lang/mono/files/mono-1.1.8.3-icall.diff b/dev-lang/mono/files/mono-1.1.8.3-icall.diff
deleted file mode 100644
index dbc12694e770..000000000000
--- a/dev-lang/mono/files/mono-1.1.8.3-icall.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- mono-1.1.8-orig/mono/metadata/icall.c 2005-07-27 21:27:32.000000000 -0700
-+++ mono-1.1.8/mono/metadata/icall.c 2005-07-27 21:28:03.000000000 -0700
-@@ -2561,7 +2561,6 @@
- else
- result = *((gpointer *)((char *)this + field->offset));
-
-- g_assert (result);
- out_args = mono_array_new (domain, mono_defaults.object_class, 1);
- *outArgs = out_args;
- mono_array_set (out_args, gpointer, 0, result);
diff --git a/dev-lang/mono/files/mono-1.1.9.1-io-layer-fix.diff b/dev-lang/mono/files/mono-1.1.9.1-io-layer-fix.diff
deleted file mode 100644
index a42d7484e516..000000000000
--- a/dev-lang/mono/files/mono-1.1.9.1-io-layer-fix.diff
+++ /dev/null
@@ -1,206 +0,0 @@
-Index: mono/io-layer/handles.c
-===================================================================
---- mono/io-layer/handles.c (revision 50600)
-+++ mono/io-layer/handles.c (working copy)
-@@ -351,10 +351,6 @@
- _wapi_private_handle_count += _WAPI_HANDLE_INITIAL_COUNT;
- }
-
-- thr_ret = mono_mutex_unlock (&scan_mutex);
-- g_assert (thr_ret == 0);
-- pthread_cleanup_pop (0);
--
- /* Make sure we left the space for fd mappings */
- g_assert (handle_idx >= _wapi_fd_reserve);
-
-@@ -375,7 +371,8 @@
- handle_specific);
- if (offset == 0) {
- /* FIXME: grow the arrays */
-- return (_WAPI_HANDLE_INVALID);
-+ handle = _WAPI_HANDLE_INVALID;
-+ goto done;
- }
- }
-
-@@ -386,7 +383,8 @@
-
- if (ref == 0) {
- /* FIXME: grow the arrays */
-- return (_WAPI_HANDLE_INVALID);
-+ handle = _WAPI_HANDLE_INVALID;
-+ goto done;
- }
- }
-
-@@ -396,6 +394,11 @@
- ref);
- #endif
- }
-+
-+done:
-+ thr_ret = mono_mutex_unlock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+ pthread_cleanup_pop (0);
-
- return(handle);
- }
-@@ -403,7 +406,7 @@
- gpointer _wapi_handle_new_from_offset (WapiHandleType type, guint32 offset)
- {
- guint32 handle_idx = 0;
-- gpointer handle;
-+ gpointer handle = INVALID_HANDLE_VALUE;
- int thr_ret, i, k;
-
- mono_once (&shared_init_once, shared_init);
-@@ -417,6 +420,11 @@
- g_assert(_WAPI_SHARED_HANDLE(type));
- g_assert(offset != 0);
-
-+ pthread_cleanup_push ((void(*)(void *))mono_mutex_unlock_in_cleanup,
-+ (void *)&scan_mutex);
-+ thr_ret = mono_mutex_lock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+
- for (i = SLOT_INDEX (0); _wapi_private_handles [i] != NULL; i++) {
- for (k = SLOT_OFFSET (0); k < _WAPI_HANDLE_INITIAL_COUNT; k++) {
- struct _WapiHandleUnshared *handle_data = &_wapi_private_handles [i][k];
-@@ -424,14 +432,24 @@
- if (handle_data->type == type &&
- handle_data->u.shared.offset == offset) {
- handle = GUINT_TO_POINTER (i * _WAPI_HANDLE_INITIAL_COUNT + k);
-- _wapi_handle_ref (handle);
-+ goto first_pass_done;
-+ }
-+ }
-+ }
-
-+first_pass_done:
-+ thr_ret = mono_mutex_unlock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+ pthread_cleanup_pop (0);
-+
-+ if (handle != INVALID_HANDLE_VALUE) {
-+ _wapi_handle_ref (handle);
-+
- #ifdef DEBUG
-- g_message ("%s: Returning old handle %p referencing 0x%x", __func__, handle, offset);
-+ g_message ("%s: Returning old handle %p referencing 0x%x",
-+ __func__, handle, offset);
- #endif
-- return (handle);
-- }
-- }
-+ return (handle);
- }
-
- pthread_cleanup_push ((void(*)(void *))mono_mutex_unlock_in_cleanup,
-@@ -713,8 +731,13 @@
- gpointer ret = NULL;
- guint32 i, k;
- gboolean found = FALSE;
-+ int thr_ret;
-
--
-+ pthread_cleanup_push ((void(*)(void *))mono_mutex_unlock_in_cleanup,
-+ (void *)&scan_mutex);
-+ thr_ret = mono_mutex_lock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+
- for (i = SLOT_INDEX (0); !found && _wapi_private_handles [i] != NULL; i++) {
- for (k = SLOT_OFFSET (0); k < _WAPI_HANDLE_INITIAL_COUNT; k++) {
- handle_data = &_wapi_private_handles [i][k];
-@@ -729,6 +752,10 @@
- }
- }
-
-+ thr_ret = mono_mutex_unlock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+ pthread_cleanup_pop (0);
-+
- if (!found && _WAPI_SHARED_HANDLE (type)) {
- /* Not found yet, so search the shared memory too */
- #ifdef DEBUG
-@@ -1564,7 +1591,13 @@
- {
- struct _WapiHandleUnshared *handle_data;
- guint32 i, k;
--
-+ int thr_ret;
-+
-+ pthread_cleanup_push ((void(*)(void *))mono_mutex_unlock_in_cleanup,
-+ (void *)&scan_mutex);
-+ thr_ret = mono_mutex_lock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+
- for(i = SLOT_INDEX (0); _wapi_private_handles [i] != NULL; i++) {
- for (k = SLOT_OFFSET (0); k < _WAPI_HANDLE_INITIAL_COUNT; k++) {
- handle_data = &_wapi_private_handles [i][k];
-@@ -1582,6 +1615,10 @@
- g_print ("\n");
- }
- }
-+
-+ thr_ret = mono_mutex_unlock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+ pthread_cleanup_pop (0);
- }
-
- static void _wapi_shared_details (gpointer handle_info)
-@@ -1602,6 +1639,10 @@
- thr_ret = _wapi_shm_sem_lock (_WAPI_SHARED_SEM_SHARE);
- g_assert(thr_ret == 0);
-
-+ pthread_cleanup_push ((void(*)(void *))mono_mutex_unlock_in_cleanup,
-+ (void *)&scan_mutex);
-+ thr_ret = mono_mutex_lock (&scan_mutex);
-+
- for(i = SLOT_INDEX (0); _wapi_private_handles [i] != NULL; i++) {
- for (k = SLOT_OFFSET (0); k < _WAPI_HANDLE_INITIAL_COUNT; k++) {
- struct _WapiHandleUnshared *handle = &_wapi_private_handles [i][k];
-@@ -1644,6 +1685,10 @@
- }
- }
- }
-+
-+ thr_ret = mono_mutex_unlock (&scan_mutex);
-+ g_assert (thr_ret == 0);
-+ pthread_cleanup_pop (0);
-
- thr_ret = _wapi_shm_sem_unlock (_WAPI_SHARED_SEM_SHARE);
-
-Index: mono/io-layer/processes.c
-===================================================================
---- mono/io-layer/processes.c (revision 50600)
-+++ mono/io-layer/processes.c (working copy)
-@@ -97,6 +97,11 @@
- int status;
- pid_t ret;
-
-+ if (_wapi_handle_issignalled (test)) {
-+ /* We've already done this one */
-+ return (FALSE);
-+ }
-+
- ok = _wapi_lookup_handle (test, WAPI_HANDLE_PROCESS,
- (gpointer *)&process);
- if (ok == FALSE) {
-@@ -104,14 +109,14 @@
- }
-
- do {
-- ret == waitpid (process->id, &status, WNOHANG);
-+ ret = waitpid (process->id, &status, WNOHANG);
- } while (errno == EINTR);
-
- if (ret <= 0) {
- /* Process not ready for wait */
- #ifdef DEBUG
-- g_message ("%s: Process %d not ready for waiting for",
-- __func__, ret);
-+ g_message ("%s: Process %d not ready for waiting for: %s",
-+ __func__, process->id, g_strerror (errno));
- #endif
-
- return (FALSE);