[INSTRM-1589] Run temperature device queries in threads Created: 28/Apr/22  Updated: 28/Apr/22  Resolved: 28/Apr/22

Status: Done
Project: Instrument control development
Component/s: ics_mebActor
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Normal
Reporter: cloomis Assignee: chihyi
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The mebActor seems to hang up when the temps device is queried when the temps device is down/unavailable. Sprinkle with threads.



 Comments   
Comment by cloomis [ 28/Apr/22 ]

Or, of course, just add timeouts.

Comment by cloomis [ 28/Apr/22 ]

Odd. Added socket timeout. Turns out that the device is usually fine, but sometimes the send() system call does not return, even when the socket is new and the buffer must be empty. Odd.

Comment by cloomis [ 28/Apr/22 ]

Merged at b0c596a, tagged 1.1.2. Running at Subaru.

The send() fails by blocking about half the time. This fix keeps the actor running, but cannot fix the controller/link problem. Should look carefully at the tcpdump traces, but I have not done so.

Generated at Sat Feb 10 16:37:19 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.