STINNER Victor <victor.stin...@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 <rep...@bugs.python.org> <http://bugs.python.org/issue4821> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com