summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2007-11-25 12:58:45 +0000
committerIan Lynagh <igloo@earth.li>2007-11-25 12:58:45 +0000
commite1cf7f788fe0e6ff984627641cfde2c17999de5d (patch)
treea4c5aa62715ddec8c4fa91c9f900d93759e83946
parentffac2b22970b1671ff0f06b231e36314459307d4 (diff)
downloadhaskell-e1cf7f788fe0e6ff984627641cfde2c17999de5d.tar.gz
On Windows, Delete the CriticalSection's we Initialize
-rw-r--r--rts/win32/AsyncIO.c1
-rw-r--r--rts/win32/IOManager.c2
-rw-r--r--rts/win32/WorkQueue.c1
3 files changed, 4 insertions, 0 deletions
diff --git a/rts/win32/AsyncIO.c b/rts/win32/AsyncIO.c
index 20de8bb4ab..54fc5cb526 100644
--- a/rts/win32/AsyncIO.c
+++ b/rts/win32/AsyncIO.c
@@ -189,6 +189,7 @@ shutdownAsyncIO(rtsBool wait_threads)
CloseHandle(completed_table_sema);
completed_table_sema = NULL;
}
+ DeleteCriticalSection(&queue_lock);
}
/*
diff --git a/rts/win32/IOManager.c b/rts/win32/IOManager.c
index 6e7cd25b7a..81dedda569 100644
--- a/rts/win32/IOManager.c
+++ b/rts/win32/IOManager.c
@@ -461,6 +461,8 @@ void ShutdownIOManager ( rtsBool wait_threads )
}
FreeWorkQueue(ioMan->workQueue);
CloseHandle(ioMan->hExitEvent);
+ DeleteCriticalSection(&ioMan->active_work_lock);
+ DeleteCriticalSection(&ioMan->manLock);
free(ioMan);
ioMan = NULL;
}
diff --git a/rts/win32/WorkQueue.c b/rts/win32/WorkQueue.c
index a0b06f3638..b676072c96 100644
--- a/rts/win32/WorkQueue.c
+++ b/rts/win32/WorkQueue.c
@@ -82,6 +82,7 @@ FreeWorkQueue ( WorkQueue* pq )
if ( pq->roomAvailable ) {
CloseHandle(pq->roomAvailable);
}
+ DeleteCriticalSection(&pq->queueLock);
free(pq);
return;
}