Re: How to build OpenPegasus SDK as single threaded?
Pranav S <[email protected]>
| Newsgroups | gmane.network.open-pegasus.general |
|---|---|
| Message-ID | <CAOGgbh0qen_jSZVHkQMoeg8_Tuy3HwFXYfEvWiM_G8Yz_ea+ew@mail.gmail.com> |
AFAIK, sublim is linux implementation of CIM/WBEM standards for managing resources. I do not see the package having support for multiple platforms as Pegasus has. And Pegasus has much better implementation. On 8 April 2012 11:35, Hwang, Johnny <[email protected]> wrote: > If you're building a client, take a look at sblim or something like that. > Pegasus is probably too heavy for your needs. > > > Ugh stupid autocorrect > > > Pranav S <[email protected]> wrote: > > > Hi Kirk, > > If single threaded library wants to use a multi threaded one, or assume an > application binary is linking indirectly to multi threaded one, then the > entire build chain has to be built with multi threading enabled. Now as I > am more focused towards writing a client side binary, I am not using any of > multi threaded piece of code from the Pegasus library. So why should I > unnecessarily build multi threaded one? and my client binary will be > performing basic operations like enumerations, listing association kind of > stuff, and for these operations Pegasus do not create any threads. > > I agree on what you are saying if I were to focus on a Provider, which > will plug into server, serving to the multiple client requests. > > I still think we need to have switch to enable/disable multi threading. > > On 7 April 2012 23:40, Kirk Augustin <[email protected]> wrote: > >> It is unsafe for a single thread to call a multi-thread, but perfectly >> safe for a multi-thread to call a single thread. >> Multi-threading is the only safe way a service like Pegasus can call >> providers. >> If not multi threaded, then one faulty provider can corrupt all >> providers, as well as Pegasus, with an infinite deadlock. >> On HP UX you can mix multi thread and single thread. >> You just have to careful about singe thread library calling multi >> threaded libraries. >> Multi-threaded libraries have to call single threaded libraries all the >> time. >> A single thread library should always be passed data by value instead of >> reference, so should never need any synchronization protection. >> That can not possibly be a problem on any system. >> >> You are using the multi threading piece of code in Pegasus. >> It can not be unused. >> Pegasus is a remote network, communications systems, server, relying on >> sockets and an unknown number of provider plug-ins. >> It would be virtually inconceivable to imagine a good way that could be >> done without multi-threading. >> You could greatly increase the number of independent processes instead, >> and created more sockets or pipes to try to share data, but multi-threading >> is a much better solution to a multi tasking server like this. >> Your providers are best compiled as out of process, so have nothing to do >> with threading at all. >> Threading is only important within Pegasus. >> The question of threading really is not relevant because Pegasus is in >> control of what it calls, so will do so safely. >> All you have to worry about is your providers. >> >> Kirk Augustin >> 11821 NW McNamee Rd >> Portland, OR 97231 >> >> HM: 503-289-4356 >> >> ------------------------------ >> *From:* Pranav S <[email protected]> >> *To:* Kirk Augustin <[email protected]> >> *Cc:* Devchandra Leishangthem <[email protected]>; " >> [email protected]" <[email protected]> >> *Sent:* Saturday, April 7, 2012 10:37 AM >> >> *Subject:* Re: How to build OpenPegasus SDK as single threaded? >> >> On HP UX we cannot mix single threaded libraries with, multi-threaded >> ones. It might cause undefined behaviour. >> And, if an application links to multi-threaded library directly or >> indirectly, it has to be built with multi-threading (-mt option) enabled. >> As I am not using multi threaded piece of code from pegcommon(src/Common), >> I am expecting it to be disabled. Why unnecessarily create a dependency on >> pthread library? I believe it is good to have a flag in configure files >> for enabling/disabling the multi-threading. >> >> >> On 6 April 2012 22:00, Kirk Augustin <[email protected]> wrote: >> >> But if you turned off multi threading in Pegasus, you would create and >> ensure the very condition you are concerned about avoiding. >> You would cause a single threaded library to be linked with multi >> threaded ones. >> The only safe solution is to make sure Pegasus is multi treaded, so that >> you avoid the possibility of a single threaded library being linked to a >> multi threaded one. >> There is no risk in a multi threaded library linking to a single threaded >> one because a single threaded library gets multiple copies. >> Only the other way around is risky. >> There is only one copy of a multi threaded library, and you do not want >> single threaded libraries linking because then more than one could end up >> linking at the same time. >> >> Kirk Augustin >> 11821 NW McNamee Rd >> Portland, OR 97231 >> >> HM: 503-289-4356 >> >> ------------------------------ >> *From:* Pranav S <[email protected]> >> *To:* Devchandra Leishangthem <[email protected]> >> *Cc:* [email protected] >> *Sent:* Friday, April 6, 2012 4:38 AM >> *Subject:* Re: How to build OpenPegasus SDK as single threaded? >> >> I some where read, on HPUX and AIX linking single threaded libraries to >> multi threaded causes undefined behaviour. Hence I was trying to to build >> openpegasus libs as single threaded. I see libpegcommon uses pthread >> library. I would like to know if there is way to turnoff the >> multithreading. In HPUX Makefiles I see "-mt" option being used to enable >> threads support. >> >> I see Pegasus/Common has thread pool implementation, which is not always >> being used by the applications consuming OenPegasus SDK. >> Let me know if I am wrong somewhere. >> >> Thank You, >> Pranav >> >> On 6 April 2012 16:22, Devchandra Leishangthem <[email protected]>wrote: >> >> Is there any specifi reason why you wanted to build uni-threaded? >> Warm Regards >> D>L> Meetei >> IBM India System and Technology Lab >> EGL -D,Bangalore, India >> >> >> >> From: Pranav S <[email protected]> >> To: [email protected], >> Date: 04/06/2012 04:06 PM >> Subject: How to build OpenPegasus SDK as single threaded? >> >> >> >> Hello, >> >> I am trying to explore OpenPegasus SDK and its applications. Currently the >> SDK uses multi threading and links to pthreads library, hence it gets >> built >> as a multithreaded. I would like to know is it possible to build the >> library as single threaded? Do we have provision for that in the >> Makefiles. >> I tried exploring but did not find anything which tells that it is >> possible >> to build the library as single threaded one. Because linking a single >> threaded library to a multithreaded library can lead to undefined >> behaviour. >> >> -- >> Thanks, >> Pranav >> >> >> >> >> >> -- >> Thanks, >> Pranav >> >> >> >> >> >> >> -- >> Thanks, >> Pranav >> >> >> >> > > > -- > Thanks, > Pranav > > -- Thanks, Pranav