mirror of
https://github.com/postgres/postgres.git
synced 2025-08-17 01:02:17 +03:00
Relax the requirement that all lwlocks be stored in a single array.
This makes it possible to store lwlocks as part of some other data structure in the main shared memory segment, or in a dynamic shared memory segment. There is still a main LWLock array and this patch does not move anything out of it, but it provides necessary infrastructure for doing that in the future. This change is likely to increase the size of LWLockPadded on some platforms, especially 32-bit platforms where it was previously only 16 bytes. Patch by me. Review by Andres Freund and KaiGai Kohei.
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
* in probe definitions, as they cause compilation errors on Mac OS X 10.5.
|
||||
*/
|
||||
#define LocalTransactionId unsigned int
|
||||
#define LWLockId int
|
||||
#define LWLockMode int
|
||||
#define LOCKMODE int
|
||||
#define BlockNumber unsigned int
|
||||
@@ -29,14 +28,14 @@ provider postgresql {
|
||||
probe transaction__commit(LocalTransactionId);
|
||||
probe transaction__abort(LocalTransactionId);
|
||||
|
||||
probe lwlock__acquire(LWLockId, LWLockMode);
|
||||
probe lwlock__release(LWLockId);
|
||||
probe lwlock__wait__start(LWLockId, LWLockMode);
|
||||
probe lwlock__wait__done(LWLockId, LWLockMode);
|
||||
probe lwlock__condacquire(LWLockId, LWLockMode);
|
||||
probe lwlock__condacquire__fail(LWLockId, LWLockMode);
|
||||
probe lwlock__wait__until__free(LWLockId, LWLockMode);
|
||||
probe lwlock__wait__until__free__fail(LWLockId, LWLockMode);
|
||||
probe lwlock__acquire(const char *, int, LWLockMode);
|
||||
probe lwlock__release(const char *, int);
|
||||
probe lwlock__wait__start(const char *, int, LWLockMode);
|
||||
probe lwlock__wait__done(const char *, int, LWLockMode);
|
||||
probe lwlock__condacquire(const char *, int, LWLockMode);
|
||||
probe lwlock__condacquire__fail(const char *, int, LWLockMode);
|
||||
probe lwlock__wait__until__free(const char *, int, LWLockMode);
|
||||
probe lwlock__wait__until__free__fail(const char *, int, LWLockMode);
|
||||
|
||||
probe lock__wait__start(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE);
|
||||
probe lock__wait__done(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE);
|
||||
|
Reference in New Issue
Block a user