summaryrefslogtreecommitdiff
path: root/src/platform/windows
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/windows')
-rw-r--r--src/platform/windows/win_impl.h1
-rw-r--r--src/platform/windows/win_thread.c6
2 files changed, 6 insertions, 1 deletions
diff --git a/src/platform/windows/win_impl.h b/src/platform/windows/win_impl.h
index 9de47ce4..c6a68142 100644
--- a/src/platform/windows/win_impl.h
+++ b/src/platform/windows/win_impl.h
@@ -60,6 +60,7 @@ struct nni_plat_thr {
struct nni_plat_mtx {
CRITICAL_SECTION cs;
DWORD owner;
+ int init;
};
struct nni_plat_cv {
diff --git a/src/platform/windows/win_thread.c b/src/platform/windows/win_thread.c
index e2568626..1b903b26 100644
--- a/src/platform/windows/win_thread.c
+++ b/src/platform/windows/win_thread.c
@@ -35,6 +35,7 @@ int
nni_plat_mtx_init(nni_plat_mtx *mtx)
{
InitializeCriticalSection(&mtx->cs);
+ mtx->init = 1;
return (0);
}
@@ -42,7 +43,10 @@ nni_plat_mtx_init(nni_plat_mtx *mtx)
void
nni_plat_mtx_fini(nni_plat_mtx *mtx)
{
- DeleteCriticalSection(&mtx->cs);
+ if (mtx->init) {
+ DeleteCriticalSection(&mtx->cs);
+ mtx->init = 0;
+ }
}