[issue4821] Patches for thread-support in built-in SHA modules
STINNER Victor
report at bugs.python.org
Sat Jan 17 03:20:47 CET 2009
STINNER Victor <victor.stinner at haypocalc.com> added the comment:
sha1module_small_locks.diff patch is very similar to the changes made
in #4751, except:
- SHA1_GIL_MINSIZE is 8192 whereas HASHLIB_GIL_MINSIZE is 2048
- There is no test for PyThread_allocate_lock() failure
Instead of copy/paste code in hashlib, sha1, sha256 and sha512 (4
modules), can't we share some constants, functions or macros?
Examples:
- the GIL minimum size constant
- the long MY_GET_BUFFER_VIEW_OR_ERROUT macro (which can be a
function)
And about sha, why using 3 files for sha? Are the source code so
different? In the GNU libc, they use "template" files (it's possible
even with the C language using the preprocessor!): strtof(), strtod()
and strtold() share 99% of the source code. Interesting content of
strtof.c :
----
#define FLOAT float
#define FLT FLT
#ifdef USE_WIDE_CHAR
#define STRTOF wcstof
#define STRTOF_L __wcstof_l
#else
# define STRTOF strtof
# define STRTOF_L __strtof_l
#endif
#include "strtod.c"
----
Refactoring to share code between hash modules will ease the changes,
eg. release the GIL ;-)
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4821>
_______________________________________
More information about the Python-bugs-list
mailing list