Skip to main content

RWMutex CLI Commands

Detailed reference for read-write mutex CLI commands.

Commands

rlock

Acquire a read lock (multiple readers allowed).

koncli rwmutex rlock <name> [flags]

Flags:

  • --holder string - Holder identifier (default: auto-detected)
  • --timeout duration - Wait timeout (default: 30s)

Examples:

# Basic read lock
koncli rwmutex rlock cache-lock

# With custom holder
koncli rwmutex rlock cache-lock --holder reader-1

# Wait for lock
koncli rwmutex rlock cache-lock --timeout 1m

lock

Acquire a write lock (exclusive access).

koncli rwmutex lock <name> [flags]

Flags:

  • --holder string - Holder identifier (default: auto-detected)
  • --timeout duration - Wait timeout (default: 30s)

Examples:

# Basic write lock
koncli rwmutex lock cache-lock

# With custom holder and timeout
koncli rwmutex lock cache-lock --holder writer-1 --timeout 30s

unlock

Release a read or write lock.

koncli rwmutex unlock <name> [flags]

Flags:

  • --holder string - Holder identifier (default: auto-detected)

Examples:

# Unlock
koncli rwmutex unlock cache-lock --holder $HOSTNAME

create

Create a new rwmutex.

koncli rwmutex create <name> [flags]

Flags:

  • --ttl duration - Optional TTL for automatic unlock

Examples:

# Create rwmutex
koncli rwmutex create cache-lock

# With TTL
koncli rwmutex create cache-lock --ttl 5m

delete

Delete a rwmutex.

koncli rwmutex delete <name>

Examples:

koncli rwmutex delete cache-lock

list

List all rwmutexes.

koncli rwmutex list [flags]

Examples:

# List all
koncli rwmutex list

# With namespace
koncli rwmutex list -n production

Usage Patterns

Cache Read Pattern

#!/bin/bash
RWMUTEX="cache-lock"
HOLDER="reader-$HOSTNAME"

if koncli rwmutex rlock $RWMUTEX --holder $HOLDER --timeout 10s; then
trap "koncli rwmutex unlock $RWMUTEX --holder $HOLDER" EXIT
read-from-cache
fi

Cache Write Pattern

#!/bin/bash
RWMUTEX="cache-lock"
HOLDER="writer-$HOSTNAME"

if koncli rwmutex lock $RWMUTEX --holder $HOLDER --timeout 30s; then
trap "koncli rwmutex unlock $RWMUTEX --holder $HOLDER" EXIT
update-cache
fi

Multiple Readers

#!/bin/bash
# Multiple readers can acquire lock simultaneously
for i in {1..5}; do
(
koncli rwmutex rlock data-lock --holder "reader-$i"
echo "Reader $i: reading data"
sleep 2
koncli rwmutex unlock data-lock --holder "reader-$i"
) &
done
wait

Read-Write Coordination

#!/bin/bash
RWMUTEX="config-lock"

# Reader process
read_config() {
koncli rwmutex rlock $RWMUTEX --holder "reader-$HOSTNAME"
cat /shared/config.json
koncli rwmutex unlock $RWMUTEX --holder "reader-$HOSTNAME"
}

# Writer process
update_config() {
koncli rwmutex lock $RWMUTEX --holder "writer-$HOSTNAME" --timeout 1m
echo '{"updated": true}' > /shared/config.json
koncli rwmutex unlock $RWMUTEX --holder "writer-$HOSTNAME"
}