bloomberg / blazingmq

A modern high-performance open source message queuing system
https://bloomberg.github.io/blazingmq/
Apache License 2.0
2.55k stars 134 forks source link

Session::nextEvent interprets timeouts under 1us as infinite #142

Closed rt12 closed 8 months ago

rt12 commented 11 months ago

Is there an existing issue for this?

Current Behavior

Timeout under 1us (for example, 100ns) is interpreted as infinite timeout

Expected Behavior

Only zero timeout should be interpreted as "infinite"

Steps To Reproduce

Create a sync session Pass 1ns as the timeout to Session::nextEvent The call will block instead of returning immediately

BlazingMQ Version

1.13.3

Anything else?

No response

678098 commented 8 months ago

Thank you @rt12, we will address

@syuzvinsky could you fix this?

The problem is here: https://github.com/bloomberg/blazingmq/blob/de10ba9d4993208bd9140337bbd432a45c4f27b7/src/groups/bmq/bmqa/bmqa_session.cpp#L1483-L1488

Possible to use totalNanoseconds for smallest time granularity https://bloomberg.github.io/bde-resources/doxygen/bde_api_prod/classbsls_1_1TimeInterval.html#a23405ad7b0178131af8cdc2c2d7015ab