GH-104787: use bitfields in `_asyncio` (#104788)

This commit is contained in:
Kumar Aditya 2023-06-13 11:11:34 +05:30 committed by GitHub
parent 8da9d1b163
commit 829ac13b69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 7 deletions

View File

@ -119,11 +119,14 @@ typedef enum {
PyObject *prefix##_result; \
PyObject *prefix##_source_tb; \
PyObject *prefix##_cancel_msg; \
fut_state prefix##_state; \
int prefix##_log_tb; \
int prefix##_blocking; \
PyObject *prefix##_weakreflist; \
PyObject *prefix##_cancelled_exc;
PyObject *prefix##_cancelled_exc; \
fut_state prefix##_state; \
/* These bitfields need to be at the end of the struct
so that these and bitfields from TaskObj are contiguous.
*/ \
unsigned prefix##_log_tb: 1; \
unsigned prefix##_blocking: 1;
typedef struct {
FutureObj_HEAD(fut)
@ -131,13 +134,13 @@ typedef struct {
typedef struct {
FutureObj_HEAD(task)
unsigned task_must_cancel: 1;
unsigned task_log_destroy_pending: 1;
int task_num_cancels_requested;
PyObject *task_fut_waiter;
PyObject *task_coro;
PyObject *task_name;
PyObject *task_context;
int task_must_cancel;
int task_log_destroy_pending;
int task_num_cancels_requested;
} TaskObj;
typedef struct {