[issue37886] PyStructSequence_UnnamedField not exported

2019-08-19 Thread Jeff Robbins
Jeff Robbins added the comment: Editing one line in structseq.h seems to fix the issue. I changed this extern char* PyStructSequence_UnnamedField; to PyAPI_DATA(char*) PyStructSequence_UnnamedField; rebuilt, and now my C extension can use PyStructSequence_UnnamedField. -- Added

[issue37886] PyStructSequence_UnnamedField not exported

2019-08-19 Thread Jeff Robbins
New submission from Jeff Robbins : Python 3.8.0b3 has the fixed https://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewType, but one of the documented features of PyStructSequence is the special https://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_UnnamedField which is

[issue35662] Windows #define _PY_EMULATED_WIN_CV 0 bug

2019-02-21 Thread Jeff Robbins
Jeff Robbins added the comment: Steve, sorry to be dense, but I'm unfortunately ignorant as to what tests I ought to be running. The only test I have right now is much too complicated, and I'd rather be running some official regression test that reveals the problem without my ap

[issue35662] Windows #define _PY_EMULATED_WIN_CV 0 bug

2019-02-21 Thread Jeff Robbins
Jeff Robbins added the comment: Steve, I did some more digging into why the native condition variable approach might be causing problems on Windows. Testing my fix revealed that there is at least one place in Modules\overlapped.c that either a) waits too long to call GetLastError(), or

[issue35580] Windows IocpProactor: CreateIoCompletionPort 4th arg 0xffffffff -- why is this value the default?

2019-02-16 Thread Jeff Robbins
Jeff Robbins added the comment: I don't understand why 0 would be safer. Since asyncio can only service this IOCP from its single threaded event loop, I would have thought 1 would express the intent better. Why not convey to the OS what we're up to, in case that helps it do a b

[issue35662] Windows #define _PY_EMULATED_WIN_CV 0 bug

2019-01-05 Thread Jeff Robbins
Jeff Robbins added the comment: I searched harder. :-) https://bugs.python.org/issue29871 I see that someone else already noticed this broken function, but I guess it was left broken because of other issues with using condition variables instead of the emulated ones? Still, the code is

[issue35662] Windows #define _PY_EMULATED_WIN_CV 0 bug

2019-01-04 Thread Jeff Robbins
Jeff Robbins added the comment: I did a search and couldn't find exactly this issue. This issue is about a broken function. It is broken because it treats a timeout as a fatal error which crashes your Python program. I supplied a proposed fix for the function. If there are other known i

[issue35662] Windows #define _PY_EMULATED_WIN_CV 0 bug

2019-01-04 Thread Jeff Robbins
New submission from Jeff Robbins : Python 3.x defaults to using emulated condition variables on Windows. I tested a build with native Windows condition variables (#define _PY_EMULATED_WIN_CV 0), and found a serious issue. The problem is in condvar.h, in this routine: /* This

[issue35599] asyncio windows_events.py IocpProactor bug

2018-12-29 Thread Jeff Robbins
Jeff Robbins added the comment: This issue is likely a duplicate of https://bugs.python.org/issue34323 which was reported in Python 3.5. -- ___ Python tracker <https://bugs.python.org/issue35

[issue35599] asyncio windows_events.py IocpProactor bug

2018-12-27 Thread Jeff Robbins
New submission from Jeff Robbins : The close() method of IocpProactor in windows_events.py has this code in its close() method: while self._cache: if not self._poll(1): logger.debug('taking long time to close proactor') The bug is that self._poll

[issue35580] Windows IocpProactor: CreateIoCompletionPort 4th arg 0xffffffff -- why is this value the default?

2018-12-24 Thread Jeff Robbins
Jeff Robbins added the comment: Per https://stackoverflow.com/questions/38133870/how-the-parameter-numberofconcurrentthreads-is-used-in-createiocompletionport, it seems that `NumberOfConcurrentThreads` controls what happens when multiple threads call `GetQueuedCompletionStatus`. But

[issue35580] Windows IocpProactor: CreateIoCompletionPort 4th arg 0xffffffff -- why is this value the default?

2018-12-24 Thread Jeff Robbins
New submission from Jeff Robbins : By default, the __init__ function of IocpProactor in windows_events.py calls CreateIoCompletionPort with a 4th argument of 0x, yet MSDN doesn't document this as a valid argument. https://docs.microsoft.com/en-us/windows/desktop/f

[issue14387] Include\accu.h incompatible with Windows.h

2012-04-02 Thread Jeff Robbins
Jeff Robbins added the comment: Thanks for the pointer to the .msi. The fix solved my apsw build problem. I installed Python 3.3.a2 and apsw-3.7.11-r1. I ran this build: C:\Temp\apsw-3.7.11-r1>c:\Python33\python setup.py fetch --all build --enable-all-extensions install apsw built

[issue14387] Include\accu.h incompatible with Windows.h

2012-04-02 Thread Jeff Robbins
Jeff Robbins added the comment: I'm happy to try another build of apsw, but am not up-to-speed with how to get development copies of Python. As a user, I typically download the latest Windows .msi file and install it. If you can point me to a document on how to proceed, I'll giv

[issue14387] Include\accu.h incompatible with Windows.h

2012-03-22 Thread Jeff Robbins
Jeff Robbins added the comment: Stefan asked 'Did you include Python.h before or after Windows.h? Extensions are supposed to include Python.h before anything else. ' I downloaded http://code.google.com/p/apsw/ to test it out on the latest sqlite release. I followed the build instr

[issue14387] Include\accu.h incompatible with Windows.h

2012-03-22 Thread Jeff Robbins
Jeff Robbins added the comment: re Stefan Krah's posting: I am sorry if I've caused any confusion. I am building a Python extension (APSW), and it includes the sqlite "amalgamation" and also includes Python.h. Sqlite includes Windows.h. Which then causes the prob

[issue14387] Include\accu.h incompatible with Windows.h

2012-03-22 Thread Jeff Robbins
Jeff Robbins added the comment: The easiest fix would be to rename the "small" field in accu.h (and of course in any file that references that field.) I have no idea who uses this file. Perhaps the 2nd easiest fix would be to put this after the #include of Windows.h #ifdef sm

[issue14387] Include\accu.h incompatible with Windows.h

2012-03-22 Thread Jeff Robbins
New submission from Jeff Robbins : Windows.h includes RpcNdr.h which does this: #define small char accu.h in Python\Include (Python 3.2.3rc2) has this in it: typedef struct { PyObject *large; /* A list of previously accumulated large strings */ PyObject *small; /* Pending small