Merge lp://staging/~gpr/dcplusplus/sync into lp://staging/dcplusplus
Proposed by
Gennady Proskurin
Status: | Needs review | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Proposed branch: | lp://staging/~gpr/dcplusplus/sync | ||||||||||||||||
Merge into: | lp://staging/dcplusplus | ||||||||||||||||
Diff against target: |
408 lines (+171/-53) 10 files modified
dcpp/Atomic.h (+122/-0) dcpp/BufferedSocket.cpp (+3/-3) dcpp/BufferedSocket.h (+5/-1) dcpp/Client.cpp (+6/-6) dcpp/Client.h (+14/-6) dcpp/CriticalSection.h (+7/-27) dcpp/Pointer.h (+4/-4) dcpp/Semaphore.h (+5/-2) dcpp/ShareManager.cpp (+3/-3) dcpp/ShareManager.h (+2/-1) |
||||||||||||||||
To merge this branch: | bzr merge lp://staging/~gpr/dcplusplus/sync | ||||||||||||||||
Related bugs: |
|
||||||||||||||||
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jacek Sieka | Needs Information | ||
Review via email: mp+32912@code.staging.launchpad.net |
Description of the change
+ includes all patches submitted in corresponding bug reports
+ Thread:
To post a comment you must log in.
Unmerged revisions
- 2216. By Gennady Proskurin
-
Change BufferedSocket:
:sockets to Atomic (strong variant). - 2215. By Gennady Proskurin
-
Use Atomic<bool> for "refreshing" variable.
- 2214. By Gennady Proskurin
-
Implement Atomic template for atomic counters.
- 2213. By Gennady Proskurin
-
Portable FastCriticalSection implementation.
I'm not quite sure I understand why one of the counters uses interprocess: :detail and the other shared_ptr::detail - if we're relying on internals, I'd minimise their use.
Also, I do not understand the comment on weak vs strong ordering, could you elaborate please.
Regarding fastcriticalsec tion, it's a spin lock which is quite appropriate if the sections locked are (very) short (small risk of contention) as OS mutexes add a lot of overhead...