mirror of
https://github.com/postgres/postgres.git
synced 2025-04-29 13:56:47 +03:00
Remove overzeleous assertions in pg_atomic_flag code.
The atomics code asserts proper alignment in various places. That's mainly because the alignment of 64bit integers is not sufficient for atomic operations on all platforms. Some ABIs only have four byte alignment, but don't have atomic behavior when crossing page boundaries. The flags code isn't affected by that however, as the type alignment always is sufficient for atomic operations. Nevertheless the code asserted alignment requirements. Before 8c3debbb it was only broken on hppa, after it probably affect further platforms. Thus remove the assertions for pg_atomic_flag operators. Per buildfarm animal pademelon. Discussion: https://postgr.es/m/7223.1523124425@sss.pgh.pa.us Backpatch: 9.5-
This commit is contained in:
parent
73709f1c1e
commit
e68d64c528
@ -215,8 +215,6 @@ STATIC_IF_INLINE_DECLARE uint64 pg_atomic_sub_fetch_u64(volatile pg_atomic_uint6
|
||||
STATIC_IF_INLINE_DECLARE void
|
||||
pg_atomic_init_flag(volatile pg_atomic_flag *ptr)
|
||||
{
|
||||
AssertPointerAlignment(ptr, sizeof(*ptr));
|
||||
|
||||
pg_atomic_init_flag_impl(ptr);
|
||||
}
|
||||
|
||||
@ -230,8 +228,6 @@ pg_atomic_init_flag(volatile pg_atomic_flag *ptr)
|
||||
STATIC_IF_INLINE_DECLARE bool
|
||||
pg_atomic_test_set_flag(volatile pg_atomic_flag *ptr)
|
||||
{
|
||||
AssertPointerAlignment(ptr, sizeof(*ptr));
|
||||
|
||||
return pg_atomic_test_set_flag_impl(ptr);
|
||||
}
|
||||
|
||||
@ -245,8 +241,6 @@ pg_atomic_test_set_flag(volatile pg_atomic_flag *ptr)
|
||||
STATIC_IF_INLINE_DECLARE bool
|
||||
pg_atomic_unlocked_test_flag(volatile pg_atomic_flag *ptr)
|
||||
{
|
||||
AssertPointerAlignment(ptr, sizeof(*ptr));
|
||||
|
||||
return pg_atomic_unlocked_test_flag_impl(ptr);
|
||||
}
|
||||
|
||||
@ -258,8 +252,6 @@ pg_atomic_unlocked_test_flag(volatile pg_atomic_flag *ptr)
|
||||
STATIC_IF_INLINE_DECLARE void
|
||||
pg_atomic_clear_flag(volatile pg_atomic_flag *ptr)
|
||||
{
|
||||
AssertPointerAlignment(ptr, sizeof(*ptr));
|
||||
|
||||
pg_atomic_clear_flag_impl(ptr);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user