public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Jay Foster <jay@systech.com>
To: Allan Nielsen <a@awn.dk>
Cc: ecos-discuss@ecos.sourceware.org
Subject: Re: [ECOS] Select break?
Date: Thu, 11 Oct 2012 15:24:00 -0000	[thread overview]
Message-ID: <5076E4A6.2070302@systech.com> (raw)
In-Reply-To: <CANdC7UEPLnJkji3CocX+V5H8h1pv-+w1CB14fiTr6Ft0iCB-Jw@mail.gmail.com>

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

      parent reply	other threads:[~2012-10-11 15:24 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-11  8:51 Allan Nielsen
2012-10-11 13:14 ` [ECOS] " Grant Edwards
2012-10-11 15:24 ` Jay Foster [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5076E4A6.2070302@systech.com \
    --to=jay@systech.com \
    --cc=a@awn.dk \
    --cc=ecos-discuss@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).