This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients ZackerySpytz, hongweipeng, martin.panter, p-ganssle, pitrou, vstinner
Date 2021-12-06.13:26:08
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1638797168.54.0.162356056183.issue33632@roundup.psfhosted.org>
In-reply-to
Content
> I think PR https://github.com/python/cpython/pull/28674 has resolved this issue.

You're right.

_threadmodule.c now uses _PyDeadline_Init() which calls _PyTime_Add(), and _PyTime_Add() prevents integer overflows; Extract of its implementation:

// Compute t1 + t2. Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow.
static inline int
pytime_add(_PyTime_t *t1, _PyTime_t t2)
{
    if (t2 > 0 && *t1 > _PyTime_MAX - t2) {
        *t1 = _PyTime_MAX;
        return -1;
    }
    else if (t2 < 0 && *t1 < _PyTime_MIN - t2) {
        *t1 = _PyTime_MIN;
        return -1;
    }
    else {
        *t1 += t2;
        return 0;
    }
}
History
Date User Action Args
2021-12-06 13:26:08vstinnersetrecipients: + vstinner, pitrou, martin.panter, p-ganssle, ZackerySpytz, hongweipeng
2021-12-06 13:26:08vstinnersetmessageid: <1638797168.54.0.162356056183.issue33632@roundup.psfhosted.org>
2021-12-06 13:26:08vstinnerlinkissue33632 messages
2021-12-06 13:26:08vstinnercreate