Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
6fbbc334
Commit
6fbbc334
authored
Oct 30, 2011
by
Antoine Pitrou
Browse files
Options
Browse Files
Download
Plain Diff
Issue #10363: Deallocate global locks in Py_Finalize().
parents
c34f5c25
8db076cf
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
10 deletions
+23
-10
Misc/NEWS
Misc/NEWS
+2
-0
Python/import.c
Python/import.c
+15
-10
Python/pystate.c
Python/pystate.c
+6
-0
No files found.
Misc/NEWS
View file @
6fbbc334
...
...
@@ -10,6 +10,8 @@ What's New in Python 3.3 Alpha 1?
Core and Builtins
-----------------
- Issue #10363: Deallocate global locks in Py_Finalize().
- Issue #13018: Fix reference leaks in error paths in dictobject.c.
Patch by Suman Saha.
...
...
Python/import.c
View file @
6fbbc334
...
...
@@ -268,16 +268,6 @@ _PyImportHooks_Init(void)
Py_DECREF
(
path_hooks
);
}
void
_PyImport_Fini
(
void
)
{
Py_XDECREF
(
extensions
);
extensions
=
NULL
;
PyMem_DEL
(
_PyImport_Filetab
);
_PyImport_Filetab
=
NULL
;
}
/* Locking primitives to prevent parallel imports of the same module
in different threads to return with a partially loaded module.
These calls are serialized by the global interpreter lock. */
...
...
@@ -390,6 +380,21 @@ imp_release_lock(PyObject *self, PyObject *noargs)
return
Py_None
;
}
void
_PyImport_Fini
(
void
)
{
Py_XDECREF
(
extensions
);
extensions
=
NULL
;
PyMem_DEL
(
_PyImport_Filetab
);
_PyImport_Filetab
=
NULL
;
#ifdef WITH_THREAD
if
(
import_lock
!=
NULL
)
{
PyThread_free_lock
(
import_lock
);
import_lock
=
NULL
;
}
#endif
}
static
void
imp_modules_reloading_clear
(
void
)
{
...
...
Python/pystate.c
View file @
6fbbc334
...
...
@@ -150,6 +150,12 @@ PyInterpreterState_Delete(PyInterpreterState *interp)
*
p
=
interp
->
next
;
HEAD_UNLOCK
();
free
(
interp
);
#ifdef WITH_THREAD
if
(
interp_head
==
NULL
&&
head_mutex
!=
NULL
)
{
PyThread_free_lock
(
head_mutex
);
head_mutex
=
NULL
;
}
#endif
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment