Skip to content

Add boost shared_mutex style semantics tests for bthread_rwlock_t - #3496

Merged
yanglimingcn merged 1 commit into
apache:masterfrom
altman08:dev
Aug 27, 2026
Merged

Add boost shared_mutex style semantics tests for bthread_rwlock_t#3496
yanglimingcn merged 1 commit into
apache:masterfrom
altman08:dev

Conversation

@altman08

Copy link
Copy Markdown
Contributor

Add 5 new tests using bthread native Mutex/ConditionVariable:

  • boost_style_multiple_readers: multiple readers can hold the read lock concurrently.
  • boost_style_only_one_writer_permitted: only one writer runs in the critical section at a time.
  • boost_style_reader_blocks_writer: a held read lock blocks a writer that arrives afterwards.
  • boost_style_unlocking_writer_unblocks_all_readers: releasing the write lock wakes up all waiting readers at once.
  • boost_style_unlocking_last_reader_only_unblocks_one_writer: once the last reader releases the read lock, only a single queued writer is unblocked, not all of them.

These complement the existing writer_priority/no_writer_starvation tests, which focus on ordering/starvation, by covering the basic mutual-exclusion and wake-up-count invariants of bthread_rwlock_t.

What problem does this PR solve?

Issue Number: resolve

Problem Summary:

What is changed and the side effects?

Changed:

Side effects:

  • Performance effects:

  • Breaking backward compatibility:


Check List:

Add 5 new tests using bthread native Mutex/ConditionVariable:

- boost_style_multiple_readers: multiple readers can hold the read
  lock concurrently.
- boost_style_only_one_writer_permitted: only one writer runs in the
  critical section at a time.
- boost_style_reader_blocks_writer: a held read lock blocks a writer
  that arrives afterwards.
- boost_style_unlocking_writer_unblocks_all_readers: releasing the
  write lock wakes up all waiting readers at once.
- boost_style_unlocking_last_reader_only_unblocks_one_writer: once the
  last reader releases the read lock, only a single queued writer is
  unblocked, not all of them.

These complement the existing writer_priority/no_writer_starvation
tests, which focus on ordering/starvation, by covering the basic
mutual-exclusion and wake-up-count invariants of bthread_rwlock_t.
@yanglimingcn

Copy link
Copy Markdown
Contributor

LGTM

@yanglimingcn
yanglimingcn merged commit da5e854 into apache:master Aug 27, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants