From 7a35d803d00c1e363c41dca1802be1dd24a404ea Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 20 Apr 2014 19:00:02 +0200 Subject: [PATCH] package daemon: Move pending job accounting back to Volume --- src/servers/package/Volume.cpp | 9 +++++---- src/servers/package/Volume.h | 1 + src/servers/package/VolumeState.cpp | 3 +-- src/servers/package/VolumeState.h | 26 -------------------------- 4 files changed, 7 insertions(+), 32 deletions(-) diff --git a/src/servers/package/Volume.cpp b/src/servers/package/Volume.cpp index d7f076034c..256b55a17f 100644 --- a/src/servers/package/Volume.cpp +++ b/src/servers/package/Volume.cpp @@ -99,7 +99,8 @@ Volume::Volume(BLooper* looper) fNodeMonitorEventHandleTime(0), fPackagesToBeActivated(), fPackagesToBeDeactivated(), - fLocationInfoReply(B_MESSAGE_GET_INSTALLATION_LOCATION_INFO_REPLY) + fLocationInfoReply(B_MESSAGE_GET_INSTALLATION_LOCATION_INFO_REPLY), + fPendingPackageJobCount(0) { looper->AddHandler(this); } @@ -425,21 +426,21 @@ Volume::HandleCommitTransactionRequest(BMessage* message) void Volume::PackageJobPending() { - fState->PackageJobPending(); + atomic_add(&fPendingPackageJobCount, 1); } void Volume::PackageJobFinished() { - fState->PackageJobFinished(); + atomic_add(&fPendingPackageJobCount, -1); } bool Volume::IsPackageJobPending() const { - return fState->IsPackageJobPending(); + return fPendingPackageJobCount != 0; } diff --git a/src/servers/package/Volume.h b/src/servers/package/Volume.h index 7bb986f026..6422d03961 100644 --- a/src/servers/package/Volume.h +++ b/src/servers/package/Volume.h @@ -185,6 +185,7 @@ private: PackageSet fPackagesToBeDeactivated; BMessage fLocationInfoReply; // only accessed in the application thread + int32 fPendingPackageJobCount; }; diff --git a/src/servers/package/VolumeState.cpp b/src/servers/package/VolumeState.cpp index a8b68756ba..10f5b721b8 100644 --- a/src/servers/package/VolumeState.cpp +++ b/src/servers/package/VolumeState.cpp @@ -17,8 +17,7 @@ VolumeState::VolumeState() fLock("volume state"), fPackagesByFileName(), fPackagesByNodeRef(), - fChangeCount(0), - fPendingPackageJobCount(0) + fChangeCount(0) { } diff --git a/src/servers/package/VolumeState.h b/src/servers/package/VolumeState.h index b5a297de03..6d73a06de4 100644 --- a/src/servers/package/VolumeState.h +++ b/src/servers/package/VolumeState.h @@ -44,10 +44,6 @@ public: const PackageSet& activatedPackage, const PackageSet& deactivatePackages); - void PackageJobPending(); - void PackageJobFinished(); - bool IsPackageJobPending() const; - private: void _RemovePackage(Package* package); @@ -56,7 +52,6 @@ private: PackageFileNameHashTable fPackagesByFileName; PackageNodeRefHashTable fPackagesByNodeRef; int64 fChangeCount; - int32 fPendingPackageJobCount; }; @@ -88,25 +83,4 @@ VolumeState::ByNodeRefIterator() const } -inline void -VolumeState::PackageJobPending() -{ - atomic_add(&fPendingPackageJobCount, 1); -} - - -inline void -VolumeState::PackageJobFinished() -{ - atomic_add(&fPendingPackageJobCount, -1); -} - - -inline bool -VolumeState::IsPackageJobPending() const -{ - return fPendingPackageJobCount != 0; -} - - #endif // VOLUME_STATE_H