Boost logo

Boost Users :

Subject: [Boost-users] Boost ASIO 1.66 serial port open seem to never fail opening (at least the way i'm using it)
From: Mathieu Peyréga (mathieu.peyrega_at_[hidden])
Date: 2018-01-11 09:12:49


Hello,

i'm using boost asio 1.66 serial port on a Ubuntu Mate 64 machine, and I
facing the fact that open("port name", error_code) command on an already
openned port do not return an error.

My test sequence :

On the same machine I pre-open /dev/ttsS0 on minicom : minicom -D
/dev/ttyS0 and check that is indeed open by sending some chars.
Now while minicom still openned, I try openning a second minicom on same
/dev/ttyS0 and this return an error : "device /dev/ttyS0 locked" as
expected.
So the device and system is able to knows that ttyS0 is already open
(minicom + OS is capable of doing that)

Now, with first minicom still running, if I run my program which is
doing open("/dev/ttySO",ec), ec is 0 and further is-open() returns true
while obviously the port is not openned.

When device not already openned with minicom, my software is behaving
properly.

Am I doing something wrong detecting if the "open" operation suceeded ?

I have a separated boost::thread
io_thread(boost::bind(&C_IO_Controller::run,&theIOController));

that is running the boost::asio::io_service object

the open command is called from the main thread (not the io_thread )

Regards

Mathieu


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net