--- a/genericopenlibs/openenvcore/backend/src/corebackend/localif.cpp Wed Sep 15 14:02:55 2010 +0300
+++ b/genericopenlibs/openenvcore/backend/src/corebackend/localif.cpp Wed Oct 13 16:27:53 2010 +0300
@@ -79,42 +79,10 @@
return &backend;
#endif
}
-
-EXPORT_C RTz& CLocalSystemInterface::TZServer(TInt &aStatus)
- {
- aStatus = OnDemandTZServerConnection();
- return iTzServer;
- }
-
-TInt CLocalSystemInterface::OnDemandTZServerConnection()
- {
- TInt v = EFalse;
- TInt err = KErrNone;
-
- if(__e32_atomic_load_acq32(&iIsRTzConnected))
- return err;
-
- iTzServerLock.Wait();
- if (!iIsRTzConnected)
- {
- err = iTzServer.Connect();
- if ( err == KErrNone )
- {
- err = iTzServer.ShareAuto();
- if( err == KErrNone) {
- v = ETrue;
- }
- }
- __e32_atomic_store_rel32(&iIsRTzConnected, v);
- }
- iTzServerLock.Signal();
-
- return err;
- }
// Construction of Backend Object which is going to be singleton object for the process
EXPORT_C CLocalSystemInterface::CLocalSystemInterface() : iOpenDirList(CLocalSystemInterface::KDirGran),
-iTLDInfoList(CLocalSystemInterface::KTLDInfoListGran), iDefConnResurrect(ETrue), iDefConnPref(NULL), iIsRTzConnected(EFalse)
+iTLDInfoList(CLocalSystemInterface::KTLDInfoListGran), iDefConnResurrect(ETrue), iDefConnPref(NULL)
{
#ifdef SYMBIAN_OE_POSIX_SIGNALS
iSignalsInitialized = EFalse;
@@ -188,7 +156,6 @@
//Create Server Locks
err |= iSSLock.CreateLocal();
err |= iCSLock.CreateLocal();
- err |= iIpcS.iLock.CreateLocal();
//Create TLDList Lock
err |= iTLDListLock.CreateLocal();
//Create the lock for Session Path
@@ -197,17 +164,25 @@
err |= iASelectLock.CreateLocal();
//Protect the iDefConnection from concurrent GetDefaultConnection calls
err |= iDefConnLock.CreateLocal();
- //Protect the time zone server while connecting
- err |= iTzServerLock.CreateLocal();
}
+ if(err == KErrNone)
+ {
+ err = iTzServer.Connect();
+ if(!err)
+ {
+ err = iTzServer.ShareAuto();
+ }
+ }
+
+
//Panic if any of the above operation returns with error
if (err)
{
User::Panic(KEstlibInit, err);
}
- iCleanup.StorePtrs(iPrivateHeap, &iFs, &iSs, &iCs, &iSSLock, &iCSLock,&iDefConnLock,&iASelectLock,&iTzServerLock);
+ iCleanup.StorePtrs(iPrivateHeap, &iFs, &iSs, &iCs, &iSSLock, &iCSLock,&iDefConnLock,&iASelectLock);
}
@@ -243,6 +218,7 @@
//close the RTz connection
iTzServer.Close();
+
if( iDefConnPref )
{
switch( iDefConnPref->ExtensionId() )
@@ -1763,11 +1739,6 @@
return MapError(err,anErrno);
}
-EXPORT_C void CLocalSystemInterface::freednssuffixes(if_dns_suffixes * suffixes)
- {
- CSocketDesc::FreeDNSSuffixes(suffixes->suffixes);
- }
-
int CLocalSystemInterface::ioctl_complete (int fid, int cmd, void* param, TRequestStatus& aStatus, int& anErrno)
{
return iFids.ioctlcomplete(fid,cmd,param,aStatus,anErrno);
@@ -2194,7 +2165,7 @@
{
timer.After(*reqarray[numReqs+arraycount], timeout);
// Wait for any request to complete
- CLocalSystemInterface::WaitForNRequest(reqarray, numReqs+arraycount+1);
+ CLocalSystemInterface::WaitForNRequest(*reqarray, numReqs+arraycount+1);
if( (*reqarray[numReqs+arraycount]).Int() == KRequestPending)
{
// The timer hasn't fired yet.
@@ -2209,7 +2180,7 @@
}
else
{
- CLocalSystemInterface::WaitForNRequest(reqarray, numReqs+arraycount);
+ CLocalSystemInterface::WaitForNRequest(*reqarray, numReqs+arraycount);
// Completion Status of one request has been gathered
onedown = ETrue;
}
@@ -3655,47 +3626,6 @@
// Used in lieu of User::WaitForNRequest because of need to support pre-Argus builds
// ---------------------------------------------------------------------------------
//
-void CLocalSystemInterface::WaitForNRequest(TRequestStatus **aStatusArray, TInt aNum)
- {
- if (aNum)
- {
- // used to keep count of requests we have not been asked to wait for
- TInt nOther = -1;
- TBool done = EFalse;
-
- do
- {
- ++nOther;
- User::WaitForAnyRequest();
- for (TInt i = 0; i < aNum; ++i)
- {
- if ((*aStatusArray[i]).Int() != KRequestPending)
- {
- done = ETrue;
- break;
- }
- }
- } while (!done);
-
- if (nOther)
- {
- // Adjust the thread's signal semaphore to account for the requests
- // we were not asked to wait for.
- RThread thrd;
- for (TInt i = 0; i < nOther; ++i)
- {
- thrd.RequestSignal();
- }
- }
- }
- }
-
-// ---------------------------------------------------------------------------------
-// CLocalSystemInterface::WaitForNRequest
-// Wait for any one of the input asynchronous requests to complete
-// Used in lieu of User::WaitForNRequest because of need to support pre-Argus builds
-// ---------------------------------------------------------------------------------
-//
void CLocalSystemInterface::WaitForNRequest(TRequestStatus aStatusArray[], TInt aNum)
{
if (aNum)