#include "ut/ut.h"
#include "lib/misc.h"
#include "lib/memory.h"
#include "lib/mutex.h"
#include "reqh/reqh.h"
#include "fop/fom_long_lock.h"
Go to the source code of this file.
|
| M0_TL_DESCR_DECLARE (m0_lll, M0_EXTERN) |
|
| M0_TL_DECLARE (m0_lll, M0_INTERNAL, struct m0_long_lock_link) |
|
static bool | readers_check (struct m0_long_lock *lock) |
|
static bool | writer_check (struct m0_long_lock *lock) |
|
static bool | lock_check (struct m0_long_lock *lock, enum tb_request_type type, size_t owners_min, size_t owners_max, size_t waiters) |
|
static int | fom_rdwr_tick (struct m0_fom *fom) |
|
static void | reqh_fop_handle (struct m0_reqh *reqh, struct m0_fom *fom) |
|
static void | test_req_handle (struct m0_reqh *reqh, struct test_request *rq, int seqn) |
|
static void | rdwr_send_fop (struct m0_reqh **reqh, size_t reqh_nr) |
|
◆ tb_request_phase
◆ tb_request_type
◆ fom_rdwr_tick()
static int fom_rdwr_tick |
( |
struct m0_fom * |
fom | ) |
|
|
static |
◆ lock_check()
Checks expected readers and writers against actual.
Definition at line 112 of file rdwr_test_bench.c.
◆ M0_TL_DECLARE()
◆ M0_TL_DESCR_DECLARE()
M0_TL_DESCR_DECLARE |
( |
m0_lll |
, |
|
|
M0_EXTERN |
|
|
) |
| |
◆ rdwr_send_fop()
static void rdwr_send_fop |
( |
struct m0_reqh ** |
reqh, |
|
|
size_t |
reqh_nr |
|
) |
| |
|
static |
◆ readers_check()
a. Checks that multiple readers can hold the read lock concurrently, but writers (more than one) get blocked.
Definition at line 71 of file rdwr_test_bench.c.
◆ reqh_fop_handle()
static void reqh_fop_handle |
( |
struct m0_reqh * |
reqh, |
|
|
struct m0_fom * |
fom |
|
) |
| |
|
static |
◆ test_req_handle()
◆ writer_check()
b. Only one writer at a time can hold the write lock. All other contenders wait.
Definition at line 92 of file rdwr_test_bench.c.
◆ chan
◆ clink
◆ long_lock
◆ sleeper
◆ test