Message121218
Terry J. Reedy writes:
> There is one relocation of memory freeing
Modules/timemodule.c does '#if,if(..errno..)' after PyMem_Free(outbuf),
which can overwrite the desired errno. Instead of reading errno into
a temporary, I moved the free into both branches taken by the #if,if().
> and the additions of
> + if (res >= 0)
> + break;
> which I cannot evaluate.
errno is only needed after an error., so I moved 'res < 0' out of the
'while'.
if (res == MP_EXCEPTION_HAS_BEEN_SET) break;
} while (res < 0 && errno == EINTR && !PyErr_CheckSignals());
-->
if (res == MP_EXCEPTION_HAS_BEEN_SET) break;
if (! (res < 0)) break;
} while (errno == EINTR && !PyErr_CheckSignals());
-->
if (res >= 0) break;
err = errno;
if (res == MP_EXCEPTION_HAS_BEEN_SET) break;
} while (err == EINTR && !PyErr_CheckSignals()); |
|
Date |
User |
Action |
Args |
2010-11-15 08:59:24 | hfuru | set | recipients:
+ hfuru, terry.reedy, giampaolo.rodola |
2010-11-15 08:59:22 | hfuru | link | issue10350 messages |
2010-11-15 08:59:22 | hfuru | create | |
|