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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.