@@ -1161,12 +1161,11 @@ Consumer_consume(Handle *self, PyObject *args, PyObject *kwargs) {
11611161 rkqu , total_timeout_ms , rkmessages , num_messages );
11621162
11631163 if (msgs_received_count < 0 ) {
1164- /* Error - need to restore GIL before setting error */
1165- PyEval_RestoreThread (cs .thread_state );
1164+ if (CallState_end (self , & cs ))
1165+ cfl_PyErr_Format (
1166+ rd_kafka_last_error (), "%s" ,
1167+ rd_kafka_err2str (rd_kafka_last_error ()));
11661168 free (rkmessages );
1167- cfl_PyErr_Format (
1168- rd_kafka_last_error (), "%s" ,
1169- rd_kafka_err2str (rd_kafka_last_error ()));
11701169 return NULL ;
11711170 }
11721171 } else {
@@ -1189,15 +1188,14 @@ Consumer_consume(Handle *self, PyObject *args, PyObject *kwargs) {
11891188 (unsigned int )msgs_received_count );
11901189
11911190 if (chunk_msg_count < 0 ) {
1192- /* Error - destroy accumulated messages,
1193- * restore GIL, and raise */
11941191 for (i = 0 ; i < msgs_received_count ; i ++ )
11951192 rd_kafka_message_destroy (rkmessages [i ]);
1196- PyEval_RestoreThread (cs .thread_state );
1193+ if (CallState_end (self , & cs ))
1194+ cfl_PyErr_Format (
1195+ rd_kafka_last_error (), "%s" ,
1196+ rd_kafka_err2str (
1197+ rd_kafka_last_error ()));
11971198 free (rkmessages );
1198- cfl_PyErr_Format (
1199- rd_kafka_last_error (), "%s" ,
1200- rd_kafka_err2str (rd_kafka_last_error ()));
12011199 return NULL ;
12021200 }
12031201
0 commit comments