@@ -349,17 +349,16 @@ library. Such callbacks include:
349
349
IModel] etc.
350
350
351
351
Application callback handlers [b must not] invoke blocking AMQP
352
- operations (such as [code IModel.QueueDeclare] or [code
353
- IModel.BasicCancel]). If they do, the channel will deadlock[footnote
354
- The underlying implementation reason is that the [code IBasicConsumer]
355
- callbacks are invoked in the connection's thread rather than in the
356
- application's thread.].
357
-
358
- Only asynchronous AMQP operations are safe for use within callbacks,
359
- such as:
360
-
361
- - [code IModel.BasicAck]
362
- - [code IModel.BasicPublish]
352
+ operations (such as [code IModel.QueueDeclare], [code
353
+ IModel.BasicCancel] or [code IModel.BasicPublish]). If they do, the
354
+ channel will deadlock[footnote The underlying implementation reason
355
+ is that the [code IBasicConsumer] callbacks are invoked in the connection's
356
+ thread rather than in the application's thread.].
357
+
358
+ Only asynchronous AMQP operations without content are safe for use
359
+ within callbacks, such as [code IModel.BasicAck]. It is not safe to
360
+ use [code IModel.BasicPublish] in callbacks, because channel flow
361
+ could block publication.
363
362
364
363
For this reason, [code QueueingBasicConsumer] is the safest way of
365
364
subscribing to a queue, because its implementation uses [code
0 commit comments