Trådat bibliotek

G Hasse gorhas at raditex.se
Thu Apr 17 23:27:29 CEST 2008


Hej!

Det här är väl inte mer BSD relaterat än att man
skulle kunna välja mellan -lc_r eller -pthreads
(Men det är ju så låg aktivitet här - så jag känner att
jag måste aktivera er!).

Jag funderar på föjande design:

Ett huvudprogram öppnar en .so fil och
annropar lib_init. Här sänder man med en
address till ett callback. En massa trådar skapas i
biblioteket.

När bibliotket har något att berätta så hoppar
man till callbacken i Main för att skriva i 
någon buffert som Main programmet håller.

Main programmet är också trådat.

Main programmet känner altså inte till lib:ets trådar.

Vad finns för fällor?

   +----------------------+
   |                      |
   |  Main prog           |
   |                      |
   |    callback()        |
   |  ld_open("XX.so")    |
   |  lib_init( callback) |
   +----------------------+


   +-------XX.so ----------+
   | lib_init( callback )  |
   |   start local trds    |
   | lib_close()           |
   |   stop and join trd's |
   |                       |
   +-----------------------+

-- 
Göran Hasse

----------------------------------------------------------------
Göran Hasse           email: gorhas at raditex.se  Tel: 08-6949270
Raditex AB             http://www.raditex.se    
Planiavägen 15, 1tr                             Mob: 070-5530148
131 34  NACKA, SWEDEN                         OrgNr: 556240-0589
VAT: SE556240058901
------------------------------------------------------------------



More information about the BUS mailing list