This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Select break?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]