-
-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new multithreaded concurrency configuration #5015
Merged
+4,385
−1,252
Merged
Changes from all commits
Commits
Show all changes
627 commits
Select commit
Hold shift + click to select a range
ac6e962
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol c912b32
Add comment to trigger CI testing
qkoziol c1fd611
Pare down CI testing while debugging
qkoziol 35cb735
Add debugging output
qkoziol f0e9444
Committing clang-format changes
github-actions[bot] 84636ba
Trim down workflows
qkoziol c375801
Fix build
qkoziol f871a21
Fix build
qkoziol e894410
Fix build
qkoziol 23b0ff6
Add testing output
qkoziol 47f7b3b
More build output
qkoziol 120571b
R/W lock output
qkoziol b5ebf19
More debug output
qkoziol f21ef34
Debug output
qkoziol 5c712c7
Debug output in mutex
qkoziol 9c64474
Correct atomic init's in barrier
qkoziol 2f4d0ab
Remove debug output
qkoziol acda444
Revert CI changes
qkoziol 30992ab
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 1956de7
Working first draft of "prepare / restore" from user callbacks
qkoziol 7641fe8
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol febca66
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol fb78cb1
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol faba6d9
Committing clang-format changes
github-actions[bot] 76f91a9
Add prepare/restore wrappers around VFD callbacks
qkoziol 522b61f
Committing clang-format changes
github-actions[bot] d006a78
Add prepare/restore wrappers around user-defined link callbacks
qkoziol a8ebe75
Committing clang-format changes
github-actions[bot] abe665f
Add prepare/restore wrappers around application datatype conversion c…
qkoziol da559fc
Fix --enable-threadsafe builds
qkoziol 53bd144
Add --enable-concurrency builds to CI
qkoziol 3d070b3
Committing clang-format changes
github-actions[bot] 449eefc
Fix typos
qkoziol 8b6a002
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 5956567
Add prepare/restore wrappers to property class & property objects
qkoziol 8fb0ab3
Committing clang-format changes
github-actions[bot] 9a3d00c
Mark libinit & libterm booleans with H5_DLLVAR
qkoziol 0541e9e
Fix H5_DLLVAR for libinit & libterm
qkoziol 654eeac
Add prepare/restore wrappers around property class and list iteration
qkoziol 6b3de74
Add prepare/restore wrappers around I/O filters
qkoziol d7c60fe
Move libinit & libterm declarations into extern 'C' block
qkoziol 0342ec6
Committing clang-format changes
github-actions[bot] df2d5e1
Add prepare/restore wrappers around dataset scatter & gather callbacks
qkoziol 41a9ccf
Add prepare/restore wrappers around chunk iteration callback
qkoziol 12f29b7
Add prepare/restore wrappers around H5I callbacks
qkoziol 3adbe90
Add prepare/restore wrappers around attribute iteration callbacks
qkoziol ec62652
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 034c855
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol c5ec61a
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol bc8f2a2
Committing clang-format changes
github-actions[bot] 9876853
Add prepare/restore wrappers around H5O visit callbacks
qkoziol 996e203
Add prepare/restore wrappers around event set callbacks
qkoziol f772256
Add prepare/restore wrappers around file image callbacks
qkoziol fbf1502
Add prepare/restore wrappers around object fluch callback
qkoziol 7ca7ae4
Add prepare/restore wrappers around external link traversal callback
qkoziol cda59de
Add prepare/restore wrappers around vlen datatype memory alloc & free…
qkoziol 6e9ffb9
Add prepare/restore wrappers around committed datatype search callback
qkoziol a05a364
Add prepare/restore wrappers around datatype conversion exception cal…
qkoziol d79f09d
Add prepare/restore wrappers around atclose callback
qkoziol c4d61b9
Add prepare/restore wrappers around VFD perform init call
qkoziol af1d90d
Add prepare/restore wrappers around filter status callback
qkoziol fdc614a
Committing clang-format changes
github-actions[bot] de4be96
Track sleeping workers
qkoziol ec68fb4
Committing clang-format changes
github-actions[bot] 7871031
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 1aedb39
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol b72a4c3
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol d1db8aa
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol b49be63
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol c1c98be
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol ba0ed23
Merge branch 'develop' into threading_updates
derobins 66beee8
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 0d32262
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 3ad494f
Add lightweight semaphores, along with optimizations
qkoziol 36c8ff0
Committing clang-format changes
github-actions[bot] dc33afb
Fix C++ builds
qkoziol b356346
Fix spelling error
qkoziol 9fbc4dc
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol e9a784c
Add emulated semaphore and regression tests for semaphores
qkoziol 1a5bbd5
Add rest of files
qkoziol 16ab253
Switch thread pools to use semaphore and remove MACH case for semapho…
qkoziol 41ab4b8
Committing clang-format changes
github-actions[bot] 8d21941
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol da9b6f0
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol afbdeba
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 762f7d7
Fix C++ build
qkoziol 0a9e269
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol d5642c0
Move rest of hot routines inline
qkoziol 23ab433
Correct warnings
qkoziol c408b25
Committing clang-format changes
github-actions[bot] 1b2861a
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 1dc3983
Committing clang-format changes
github-actions[bot] 9755a27
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol c98f90a
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol fc8f94b
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 9190f91
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 3b4016a
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 7474b4d
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 58cbc5c
Add BEFORE/AFTER user callback wrappers to missed VFD callbacks
qkoziol 76ee4ea
Committing clang-format changes
github-actions[bot] 6eef1a2
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol d2ee4cd
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 015c029
Committing clang-format changes
github-actions[bot] 909015c
Committing clang-format changes
github-actions[bot] 9e58936
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 218f662
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 981ec35
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 06bc0a8
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol dbe90c8
Small optimizations to thread pools
qkoziol 7746097
Committing clang-format changes
github-actions[bot] 8ced6e4
Rename routines for acquiring & releasing API mutex
qkoziol 9725b38
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol d4fe1dd
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol cf94f43
Optimize setting & getting thread-specific keys
qkoziol 35bd789
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 712d4e0
Committing clang-format changes
github-actions[bot] b16c9cb
Committing clang-format changes
github-actions[bot] 0aae351
Committing clang-format changes
github-actions[bot] b2ed8f9
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 476d0f0
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol aaa7868
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 2cacd25
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol b43305e
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 95d6a8c
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol a7da18c
Fix typo in configure check
qkoziol 67551c6
Fix check for threads in subfiling check
qkoziol 847f473
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 14cce82
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 714437f
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 421378a
Redistribute code back to threading_updates branch
qkoziol 8cf564c
Redistribute code between this branch and the non_rec_rwlock branch
qkoziol 0a40eb8
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 7778b78
Committing clang-format changes
github-actions[bot] 8c47af8
Remove voidp atomics
qkoziol 92d8ca7
Fix typo
qkoziol a3e7bfa
Redistribute code between this branch and the non_rec_rwlock branch
qkoziol e3dd94f
Fixed usage issue with FindZLIB.cmake module (#4655)
byrnHDF 7d0e3a3
Eliminate more H5E_BEGIN/END_TRY macros and H5E_clear_stack() calls (…
qkoziol 0d55938
Make VOL CI run against current branch (#4654)
mattjala 92eb3d3
Committing clang-format changes
github-actions[bot] 7b3b3bd
Remove voidp atomics
qkoziol 9d62227
Fix typo
qkoziol 958eaa3
Redistribute code between this branch and the non_rec_rwlock branch
qkoziol 6636db2
Remove voidp atomics
qkoziol 4573806
Fix typo
qkoziol d5f5735
Restore atomic voidp inline routines
qkoziol afae630
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol b3b1584
Committing clang-format changes
github-actions[bot] ce70682
Restore atomic voidp routines
qkoziol a509273
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 4f8305e
Merge remote-tracking branch 'origin/develop' into threading_updates
qkoziol 58c75f3
Yield thread's timeslice when spin-waiting for barrier completion
qkoziol b2e6e4d
Committing clang-format changes
github-actions[bot] e5f8cbd
Merge remote-tracking branch 'origin/threading_updates' into non_rec_…
qkoziol 1c681af
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol d95abf4
Merge remote-tracking branch 'origin/develop' into non_rec_rwlock
qkoziol 44ec13c
Merge remote-tracking branch 'origin/develop' into non_rec_rwlock
qkoziol f13fde9
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol a1445c4
Merge remote-tracking branch 'origin/develop' into non_rec_rwlock
qkoziol d3a8f6a
Merge remote-tracking branch 'origin/non_rec_rwlock' into locking_pro…
qkoziol 8c0d675
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 68a5541
Fixups after merging from TOT
qkoziol b2c72a0
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol fcfd7cd
Remove missed NVIDIA copyright lines
qkoziol 91c9b3c
More cleanups from merge, updated RELEASE.txt, code tidying
qkoziol edbf13c
Committing clang-format changes
github-actions[bot] cc77afe
Debug CI failure on github
qkoziol fcc71dd
Cleanups while preparing to submit PR
qkoziol d8f1b74
Committing clang-format changes
github-actions[bot] 287c78f
Fix missing routine on MacOS ttsafe test (#4863)
mattjala defb041
Fixes a segfault in h5dump (#4862)
bmribler 1152d93
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol bb08384
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 877ce80
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol e41514e
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol e0b67a2
Committing clang-format changes
github-actions[bot] d991219
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol aa50796
Committing clang-format changes
github-actions[bot] 64a28b3
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 2f379d2
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 4c9b00c
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol b116bd7
Correct misc. issues from changes on develop
qkoziol 153c56a
Committing clang-format changes
github-actions[bot] ee57b11
Add rwlock emulation on MacOS
qkoziol c25aac4
Remove FALSE from some API tests (#4977)
jhendersonHDF 0d32364
Set the C standard to 11 (#4975)
derobins 82a0ea9
Remove the high-level GIF tools (#4976)
derobins f07868d
Renamed COPYING to LICENSE (#4978)
derobins f3cae8f
Always check for __attribute__() in CMake (#4980)
derobins 2eb9ccd
Remove some Solaris Studio work-arounds (#4979)
derobins 0c1eb7d
Check in generated files in src (#4981)
derobins 8d0a602
Move h5_test_init() calls after MPI_Init (#4988)
jhendersonHDF 1031b19
Remove bin/cmakehdf5
derobins 729a6f5
Replace COPYING with LICENSE in workflows (#4989)
byrnHDF f7915dc
Prefix remaining CMake options except for CMake BUILD* variables (#4990)
byrnHDF 0fd9afc
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 2c1cb90
Committing clang-format changes
github-actions[bot] 9e41db9
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 688cde5
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 69d3d28
Committing clang-format changes
github-actions[bot] 94b1b77
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 4426f03
Remove API routine calls from within the library
qkoziol 8e7ccf7
Committing clang-format changes
github-actions[bot] cfdde80
Revert change
qkoziol 5832f7d
Switch 'return NULL' to HGOTO_DONE(NULL) in H5allocate_memory
qkoziol a94f074
Minor cleanups
qkoziol 2af59a1
Protect more user callbacks
qkoziol a2e0f5b
Committing clang-format changes
github-actions[bot] affe3a2
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol b14ce95
Merge branch 'develop' into locking_protocol
derobins 2473d07
Update FUNC_ENTER
qkoziol 5226226
Merge branch 'develop' into locking_protocol
qkoziol 84ae455
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 6bc58bc
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol ae27cd1
Add user-callback wrappers to complex conversions
qkoziol e616ecc
Committing clang-format changes
github-actions[bot] 9ba65be
Enable checking for threads.h
qkoziol ff8471e
Committing clang-format changes
github-actions[bot] 30ab7bd
Correct API LOCK/UNLOCK macros for non-threadsafe builds
qkoziol fa313f0
Committing clang-format changes
github-actions[bot] 5be85c8
Refactor location of threading package
qkoziol 1fd01b4
Fix thread library
qkoziol c805c2f
Update threading config
qkoziol dcabd89
Work on thread config
qkoziol 51d1f5a
Update thread library
qkoziol 883cbbe
Revert changes for detecting C11 threads
qkoziol 8e52cfa
Fix typo
qkoziol da26810
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol d42953e
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 0faf451
Remove prototype for unused routine.
qkoziol b228138
Committing clang-format changes
github-actions[bot] 2c2993d
Try to prevent errors if an unknown multithreading mode is encountered
qkoziol b209735
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 594c12d
Add missed protection around user callback
qkoziol 5cbfa4d
Fix typo
qkoziol 898a7a9
Fix warning
qkoziol e37d23a
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 7d28ecd
Merge remote-tracking branch 'origin/develop' into locking_protocol
qkoziol 56d2f52
Follow changes on develop
qkoziol 18fe722
Embrace more uses of H5_BEFORE_USER_CB*
qkoziol 58a2310
Committing clang-format changes
github-actions[bot] 45150ef
Try updating clang format options to know about H5_PAUSE/RESUME_ERRORS
qkoziol 4363094
Fix(?) clang format syntax
qkoziol f77bc18
Committing clang-format changes
github-actions[bot] c932bda
Disable clang formatting for these blocks again
qkoziol 1ee9892
Committing clang-format changes
github-actions[bot] 4951361
Fix blocks again!
qkoziol 92b2bc5
Committing clang-format changes
github-actions[bot] 153226e
Try again
qkoziol 4050130
Committing clang-format changes
github-actions[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -985,6 +985,59 @@ if (HDF5_ENABLE_THREADSAFE) | |
set (H5_HAVE_THREADSAFE 1) | ||
endif () | ||
|
||
#----------------------------------------------------------------------------- | ||
# Option to use multi-threaded concurrency | ||
#----------------------------------------------------------------------------- | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Concurrency configuration, which is mutually exclusive with the existing threadsafe configuration option. |
||
option (HDF5_ENABLE_CONCURRENCY "Enable multi-threaded concurrency" OFF) | ||
if (HDF5_ENABLE_CONCURRENCY) | ||
# check for unsupported options | ||
if (WIN32) | ||
if (BUILD_STATIC_LIBS) | ||
message (FATAL_ERROR " **** multi-threaded concurrency option not supported with static library **** ") | ||
endif () | ||
endif () | ||
if (HDF_ENABLE_PARALLEL) | ||
if (NOT ALLOW_UNSUPPORTED) | ||
message (FATAL_ERROR " **** Parallel and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ") | ||
else () | ||
message (VERBOSE " **** Allowing unsupported parallel and multi-threaded concurrency options **** ") | ||
endif () | ||
endif () | ||
if (HDF5_BUILD_FORTRAN) | ||
if (NOT ALLOW_UNSUPPORTED) | ||
message (FATAL_ERROR " **** Fortran and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ") | ||
else () | ||
message (VERBOSE " **** Allowing unsupported Fortran and multi-threaded concurrency options **** ") | ||
endif () | ||
endif () | ||
if (HDF5_BUILD_CPP_LIB) | ||
if (NOT ALLOW_UNSUPPORTED) | ||
message (FATAL_ERROR " **** C++ and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ") | ||
else () | ||
message (VERBOSE " **** Allowing unsupported C++ and multi-threaded concurrency options **** ") | ||
endif () | ||
endif () | ||
if (HDF5_BUILD_HL_LIB) | ||
if (NOT ALLOW_UNSUPPORTED) | ||
message (FATAL_ERROR " **** HL and multi-threaded concurrency options are not supported, override with ALLOW_UNSUPPORTED option **** ") | ||
else () | ||
message (VERBOSE " **** Allowing unsupported HL and multi-threaded concurrency options **** ") | ||
endif () | ||
endif () | ||
|
||
# Check for threading package | ||
if (NOT Threads_FOUND) | ||
message (FATAL_ERROR " **** multi-threaded concurrency option requires a threading package and none was found **** ") | ||
endif () | ||
|
||
# Multi-threaded concurrency and threadsafe options are mutually exclusive | ||
if (HDF5_ENABLE_THREADSAFE) | ||
message (FATAL_ERROR " **** multi-threaded concurrency and threadsafe options are mutually exclusive **** ") | ||
endif () | ||
|
||
set (H5_HAVE_CONCURRENCY 1) | ||
endif () | ||
|
||
#----------------------------------------------------------------------------- | ||
# Option to build the map API | ||
#----------------------------------------------------------------------------- | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The BEGIN_FUNC/END_FUNC macros were removed a while ago. So, I actually removed them and added the _BEFORE_USER_CB/_AFTER_USER_CB macros.