This is the mail archive of the ecos-discuss@sources.redhat.com 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: FW: Mailboxes - priorities of messages


On Tue, 2004-06-29 at 06:05, Han Hoekstra wrote:
>  Hey,
> 
> I have had the same problem in one of my projects and what I did is trigger
> the receive process using a semaphore and have it check multiple mailboxes,
> the one with the highest priority first and the one with the lowest priority
> last. Also I made my own mailbox implementation which uses the eCos Mailbox
> API to implement the actual message queue, the only thing my mailbox does
> extra is trigger the semaphore every time a message is placed in the queue,
> so that the receive process will start. The sending process only has to
> place the message in the correct mailbox, which corresponds to the priority
> of the message.....

You could also do a similar thing, except instead of a semaphore, use a 
flag.  This is an array of bits and your threads can set/clear them 
individually, and more importantly wait for them to change state.

Use one bit per "priority" of mailbox.  Then when one is set, your 
thread can awaken (ala a semaphore wait/post).  This is a lighter
solution (a single flag variable vs multiple semaphores), plus when
the receiving thread is awakened, it can determine immediately (without
any other kernel interaction) which mailbox(es) have data.

> 
> Greetings,
>    Han
> -----Original Message-----
> From: ecos-discuss-owner@ecos.sourceware.org
> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Gorjup Matthias
> Sent: dinsdag 29 juni 2004 12:48
> To: ''Ecos-Discuss (E-Mail)'
> Subject: [ECOS] FW: [ECOS] Mailboxes - priorities of messages
> 
> Hello Andrew,
> 
> Here are some details of our mBox problem;
> 
> When more than one thread (task) is using the same mBox to communicate with
> one another thread, the send/received mails(messages) has to be kept in a
> message qeue. ( or they arrive to mBox and kept in an order qeue). 
> 
> In this message qeue, we need to put the process of the messages (mails) in
> a prioritisation. For example , a critical mail send by a timeout function
> has to be processed before a user request mail which is send through the
> same mBox to the same thread.
> 
> I hope this gives you enough info.
> 
> Regards.
> Tolga
> 
>    
> 
> -----Original Message-----
> From: Gorjup Matthias
> To: 'Tolga SIMSEK' (E-Mail)
> Sent: 29.06.2004 12:34
> Subject: WG: [ECOS] Mailboxes - priorities of messages
> 
> 
> 
> -----Ursprungliche Nachricht-----
> Von: Andrew Lunn [ mailto:andrew@lunn.ch <mailto:andrew@lunn.ch> ]
> Gesendet: Dienstag, 29. Juni 2004 11:29
> An: Gorjup Matthias
> Cc: 'ecos-discuss@ecos.sourceware.org' 
> Betreff: Re: [ECOS] Mailboxes - priorities of messages 
> 
> 
> On Tue, Jun 29, 2004 at 10:02:32AM +0200, Gorjup Matthias wrote: 
> > Hello,
> > 
> > we are porting a special ethernet driver to eCos and we would need to 
> > implement prioritozed mailbox messages for communication between
> threads. Is 
> > it possible to use priorities for mbox messages? If not, is there some
> 
> > workaround or another solution that we could use? 
> 
> Prioritized could mean many different things. Please could you be more
> specific. Are you talking about the threads blocking for access to the mbox,
> the messages withing the mbox, or some other priority feature. 
> 
>         Andrew 
> 
> --
> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


-- 
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]