Go to the FreeLists Home Page Home Signup Help Login
 



[openbeosnetteam] || [Date Prev] [04-2002 Date Index] [Date Next] || [Thread Prev] [04-2002 Thread Index] [Thread Next]

[openbeosnetteam] Re: Now it seems this thing works! :)

  • From: "Bruno G. Albuquerque" <bga@xxxxxxxxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Wed, 03 Apr 2002 11:47:54 EST (-0300)
> > I *REALLY* think select() should be provided in a separate library. 
> 
> Me too, it should be in libroot.so.
> Problem is, until we can use newos as kernel, we're with BeOS kernel.
> I mean, BeOS kernelS:

Not exactly. We can just create a libselect.so and link any programs 
that want to use our select() call to it. Adn we can do it now (no need 
to wait for NewOS.

> - BeOS kernel <= R5.0.3 don't export a select() call to userland, 
> the only public select() is Be's libnet.so but it works only with 
> net_server's sockets. We can't use this one.

And we don't need to. Note that our net stack will replace the 
net_server one so this select() won't even exist anymore.
 
> So, to add real select() support to OBOS pre-R1 using BeOS <= R5.0.3 
> kernels, we'll need to move the select() call 
> currently in net_kit/source/libnet/libnet.c to the OBOS equivalent of 
> libroot.so. Problem is 
> there's no OBOS libroot.so for BeOS kernel!

As I said, it does not have to be libroot.

> Well, yes, there is (Be release the libroot.so source code), 
> but nobody care to add to the OBOS repository (yet?).
> I guess building OBOS libroot.so will start with 
> OBOS NewOS kernel move... not before.

We don`t have to worry about that right now.
 
> - BeOS kernel > R5.0.3 (aka BONE & Co): the select() is already 
> there, 
> in it's libroot.so, and works well.

BONE would also be replaced by our implementation. I guess we just need 
a way to make it possible to link a program against libroot.so and our 
libselect.so without conflicts. Is it possible at all? Can we check 
inside the library if libroot (or any other library for that matter) 
exports the symbol and do not export ours? This way we would use the 
BONE kernel select() when present.

> In fact, the link stage of test app may even find select() in 
> libroot.so 
> *before* our own libnet.so one's...

Dunno. How can I know? Well... According to David, our version is 
broken. :)
 
> So, for R5.0.3- systems, we offer a better libnet.so with better 
> select() 
> support, but nothing more. As no non-BONE apps could use 
> select() on file descriptor, I don't see a big problem here ;-)

But it will be possible now, thanks to OpenBFS. We must make things 
easier for everyone else.
 
> And for R5.0.4+ systems, we'll use the kernel/libroot.so select() 
> call.

Yes. But see above.
 
> So, maybe we should inclose the select() call support in libnet.so 
> between a #if BEOS_KERNEL_VERSION < 0x0504 ... #endif

That would help. But what do we do with binary distributions? Some 
users won't like having to compile stuff. Maybe provide a BONE and non-
BONE version?

> > This test uses 100% of my CPU (PIII 800). Is this expected?
> 
> Yes. A 90% idle CPU is waste ;-)

Yeah, right. :P
 
> > In a few words... David, you *ROCK*.
> 
> Could I join you Bruno on this sentence?
> :-)

Be my guest. :)

While we are at that, wouldn`t you happen to know how to fix our 
select()?

-Bruno


--
Fortune Cookie Says:

Two can Live as Cheaply as One for Half as Long.
                -- Howard Kandel






[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.