You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
According to the documentation, receiveWithin should block at most msec milliseconds
if no message matches any of the cases of the partial function passed as argument.
This is not correct if the function is not defined on TIMEOUT and if the msec argument
is > 0.
blocks indefinitely. The TIMEOUT object is stored in the mailbox after the timeout, but it remains there as it is not consumed.
Actually a new TIMEOUT object is added to the mailbox after each additional msec milliseconds.
The function receiveWithin defines the local function receiveTimeout which checks, whether the function is defined at TIMEOUT, but this function is only called if msec == 0L.
Dominik
The text was updated successfully, but these errors were encountered:
@paulp said:
This sounds like a duplicate of #3799, but not sure: perhaps submitter could see if that sounds true and if so, close this as a duplicate.
This sounds like a duplicate of #3799, but not sure:
perhaps submitter could see if that sounds true and if so,
close this as a duplicate. #3799 reports, that messages may be lost. In my example no message is lost, all messages remain in the actor's mailbox, but receiveWithin does not terminate after the timeout. Actually, the TIMEOUT message can be found in the mailbox. Note that this behavior changed from 2.7.7 to 2.8.0.
According to the documentation,
receiveWithin
should block at mostmsec
millisecondsif no message matches any of the cases of the partial function passed as argument.
This is not correct if the function is not defined on
TIMEOUT
and if the msec argumentis > 0.
The function
throws an "unhandled timeout"
RuntimeException
, howeverblocks indefinitely. The
TIMEOUT
object is stored in the mailbox after the timeout, but it remains there as it is not consumed.Actually a new
TIMEOUT
object is added to the mailbox after each additionalmsec
milliseconds.The function
receiveWithin
defines the local functionreceiveTimeout
which checks, whether the function is defined atTIMEOUT
, but this function is only called ifmsec == 0L
.Dominik
The text was updated successfully, but these errors were encountered: