Actions
Bug #862
openDIMSE_findUser() does not properly handle DIMSE_NONBLOCKING
Status:
New
Priority:
Normal
Assignee:
-
Category:
Library
Target version:
-
Start date:
2018-12-10
Due date:
% Done:
0%
Estimated time:
Module:
dcmnet
Operating System:
Compiler:
Description
When I call DIMSE_findUser() with DIMSE_NONBLOCKING, it does not honor the non-blocking directive and instead blocks for a long time which causes our UI to hang. DCMTK is blocks until complete, ignoring DIMSE_NONBLOCKING. See code snippet below:
// this code calls DIMSE_findUser() which blocks until done, the DIMSE_NONBLOCKING flag // is not honored. If I put 0 for a timeout I get an error. This code blocks until done const auto cond = DIMSE_findUser(m_assoc, static_cast<T_ASC_PresentationContextID>(nPresentationID), &request, &m_dataset, responseCount, _FindUserCallback, this, DIMSE_NONBLOCKING, m_nResponseTimeout / 1000, &response, &statusDetail);
If I set [the timeout] to 0 (which makes sense for non-blocking) it returns with an error, "error non-blocking with 0 timeout" or something like that. If I set it to 100, it complains depending on the number of records. If I set it to 200, I think it fails find all the records, for cases where there are many records or a slower network connection.
Reported 2018-12-03 by Richard Breen <richard.breen@abbott.com>
Actions