[BEEPbuilders] M-Thread safety and beepcore-c wrapper use

Gilbert Gagnon gagnong@nortelnetworks.com
Wed, 11 Dec 2002 19:10:21 -0500


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C2A172.DC7C9110
Content-Type: text/plain

Hello,

Has there been any discussions on the use of a BEEP wrapper (e.g. the ones
provided in beepcore-c)
in a non multi-thread safe C/C++ application.  I've not found any
description of the thread model/usage/interaction
in that wrapper and its use.  Without that description I can hardly
determine if there is a way to use 
the interface within a single threaded/event-driven (select()) system or if
I should consider writing
a new single threaded wrapper from scratch to fit such an environement.  The
only matching information 
I can find is a list of semaphone/thread related calls in the BEEP book and
a statement in "The BEEPCORE-C
Architecture" that Wappers provide for "...synchronization, ... thread
management, and so on.".
>From that, I cannot deduce what that thread usage at the wrapper level
implies/requires from the profile
and application implementation (callback delivery, ...) if anything at all.
Is the intent that the BEEP "engine" (core/wrapper) 
itself runs in its own thread and that the application/profile is in another
(or more)?
Is the intent for the application to have different threads for different
channels?
Is there a way to integrate the beep related file descriptors in an external
event/select loop (e.g. X-Windows)
with socket level callbacks into the core (I'm not seeing any)?

Any help would be appreciated.

Thanks

-----------------------------------+-------------------------------------
 \~~~~/ Gilbert C. Gagnon          | *       gagnong@nortelnetworks.com
 |    | NORTEL Networks            | %        (613) 765-4035
 [-OO-] Multiservice Data Manager  | % FAX:   (613) 763-2037
 | () | P.O. Box 3511, Station C   | % ESN:       6 395-4035  ,---. 
 |    | Ottawa, Ontario            | Dept:    NM10           CO-|| Y
 `----' Canada                     | * Stop:  04351Q18       O  || |
        K1Y 4H7                    |                         |   D J
-----------------------------------+-------------------------// /"""'----



------_=_NextPart_001_01C2A172.DC7C9110
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2655.35">
<TITLE>M-Thread safety and beepcore-c wrapper use</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2 FACE=3D"Arial">Hello,</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">Has there been any discussions on the =
use of a BEEP wrapper (e.g. the ones provided in beepcore-c)</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">in a non multi-thread safe C/C++ =
application.&nbsp; I've not found any description of the thread =
model/usage/interaction</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">in that wrapper and its use.&nbsp; =
Without that description I can hardly determine if there is a way to =
use </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">the interface within a single =
threaded/event-driven (select()) system or if I should consider =
writing</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">a new single threaded wrapper from =
scratch to fit such an environement.&nbsp; The only matching =
information </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">I can find is a list of =
semaphone/thread related calls in the BEEP book and a statement in =
&quot;The BEEPCORE-C</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">Architecture&quot; that Wappers =
provide for &quot;...synchronization, ... thread management, and so =
on.&quot;.</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">From that, I cannot deduce what that =
thread usage at the wrapper level implies/requires from the =
profile</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">and application implementation =
(callback delivery, ...) if anything at all.&nbsp; Is the intent that =
the BEEP &quot;engine&quot; (core/wrapper) </FONT></P>

<P><FONT SIZE=3D2 FACE=3D"Arial">itself runs in its own thread and that =
the application/profile is in another (or more)?</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">Is the intent for the application to =
have different threads for different channels?</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">Is there a way to integrate the beep =
related file descriptors in an external event/select loop (e.g. =
X-Windows)</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Arial">with socket level callbacks into the =
core (I'm not seeing any)?</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">Any help would be appreciated.</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">Thanks</FONT>
</P>

<P><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">-----------------------------------+------------------=
-------------------</FONT>
<BR><FONT COLOR=3D"#808000" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;\~~~~/</FONT><FONT SIZE=3D2 FACE=3D"Terminal"> =
</FONT><FONT COLOR=3D"#008080" SIZE=3D2 FACE=3D"Terminal">Gilbert C. =
Gagnon</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 </FONT><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 FACE=3D"Terminal"></FONT> =
<FONT COLOR=3D"#008080" SIZE=3D1 FACE=3D"Wingdings">+</FONT><FONT =
COLOR=3D"#008080" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT> <FONT =
SIZE=3D2 FACE=3D"Terminal">gagnong@nortelnetworks.com</FONT>
<BR><FONT COLOR=3D"#FF00FF" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;|&nbsp;&nbsp;&nbsp; |</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal"> NORTEL =
Networks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; </FONT><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 FACE=3D"Terminal"></FONT> =
<FONT COLOR=3D"#008080" SIZE=3D1 FACE=3D"Monotype Sorts">%</FONT><FONT =
SIZE=3D2 FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
(613) 765-4035</FONT>
<BR><FONT COLOR=3D"#FF00FF" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;[</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">-</FONT><FONT COLOR=3D"#00FFFF" SIZE=3D2 =
FACE=3D"Terminal">OO</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">-</FONT><FONT COLOR=3D"#FF00FF" SIZE=3D2 =
FACE=3D"Terminal">]</FONT><FONT SIZE=3D2 FACE=3D"Terminal"> =
Multiservice Data Manager&nbsp; </FONT><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 FACE=3D"Terminal"></FONT> =
<FONT COLOR=3D"#008080" SIZE=3D1 FACE=3D"Monotype Sorts">%</FONT><FONT =
COLOR=3D"#008080" SIZE=3D2 FACE=3D"Terminal"> FAX:</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp; (613) 763-2037</FONT>
<BR><FONT COLOR=3D"#FF00FF" SIZE=3D2 FACE=3D"Terminal">&nbsp;| () =
|</FONT><FONT SIZE=3D2 FACE=3D"Terminal"> P.O. Box 3511, Station =
C&nbsp;&nbsp; </FONT><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 FACE=3D"Terminal"></FONT> =
<FONT COLOR=3D"#008080" SIZE=3D1 FACE=3D"Monotype Sorts">%</FONT><FONT =
COLOR=3D"#008080" SIZE=3D2 FACE=3D"Terminal"> ESN:</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 395-4035&nbsp; =
,---. </FONT>
<BR><FONT COLOR=3D"#FF00FF" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;|&nbsp;&nbsp;&nbsp; |</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal"> Ottawa, =
Ontario&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; </FONT><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 FACE=3D"Terminal"> =
</FONT><FONT COLOR=3D"#008080" SIZE=3D2 =
FACE=3D"Terminal">Dept:</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp; =
NM10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CO-|| =
Y</FONT>
<BR><FONT COLOR=3D"#FF00FF" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;`----'</FONT><FONT SIZE=3D2 FACE=3D"Terminal"> =
Canada&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT =
COLOR=3D"#800080" SIZE=3D2 FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal"></FONT> <FONT COLOR=3D"#008080" SIZE=3D1 =
FACE=3D"Wingdings">+</FONT><FONT COLOR=3D"#008080" SIZE=3D2 =
FACE=3D"Terminal"> Stop:&nbsp;</FONT> <FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Terminal">04351Q18</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; O&nbsp; || =
|</FONT>
<BR><FONT SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; K1Y =
4H7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT =
COLOR=3D"#800080" SIZE=3D2 FACE=3D"Terminal">|</FONT><FONT SIZE=3D2 =
FACE=3D"Terminal"> </FONT><FONT COLOR=3D"#008080" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;</FONT> <FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Terminal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
</FONT> <FONT SIZE=3D2 FACE=3D"Terminal">|&nbsp;&nbsp; D J</FONT>
<BR><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">-----------------------------------+------------------=
-------</FONT><FONT SIZE=3D2 FACE=3D"Terminal">// =
/&quot;&quot;&quot;'</FONT><FONT COLOR=3D"#800080" SIZE=3D2 =
FACE=3D"Terminal">----</FONT>
</P>
<BR>

</BODY>
</HTML>
------_=_NextPart_001_01C2A172.DC7C9110--