[ECOS] Select break?

Jay Foster jay@systech.com
Thu Oct 11 15:24:00 GMT 2012


Just because eCos does not have a pipe or socketpair feature does not 
mean that you cannot use an additional pair of sockets.  Add another 
socket (UDP on the loopback interface) to listen on in your select() 
call.  Add another socket (UDP) to send messages to it using sendto().  
You can bind the listening socket to the loopback interface with any 
port number (0) and use the getsockname() function to retrieve the 
actual bound socket address.  This address can be used in the sendto() 
calls.

Jay

On 10/11/2012 1:51 AM, Allan Nielsen wrote:
> Hi,
>
> Is there any way I can wakeup a select call from an other thread?
>
> I'm using eCos threads (not posix threads), so sending a signal using
> pthread_kill does not seem to be an option.
>
> I would have guessed that I could create a file descriptor pair using
> pipe, or socketpair, include this in the select list, and write some
> dummy data. But since eCos does not implement either pipe or
> socketpair, this does not seem to be an option either.
>
> I have tried to use the cyg_selrecord and the cyg_selwakeup functions,
> but they only cause the select function to poll the file descriptors
> again.
>
> So how can this be done using eCos threads?
>
> Best regards
> Allan W. Nielsen
>

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list