---
name: "ACE_Remote_RLock"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_Remote_RLock"
---

# ACE\_Remote\_RLock(3)

Proxy for acquiring, renewing, and releasing a distributed readers lock.

## NAME

ACE\_Remote\_RLock -  Proxy for acquiring, renewing, and releasing a distributed readers lock.

## SYNOPSIS

```
#include <ACE/Remote_Tokens.h>
class ACE_Remote_RLock : public ACE_Remote_Token_Proxy
{
  public:
    ACE_Remote_RLock (void);
    ACE_Remote_RLock (
        const ASYS_TCHAR *token_name,
        int ignore_deadlock = 0,
        int debug = 0
        );
    ACE_Remote_RLock (const ACE_Remote_RLock &mutex);
    void dump (void) const;
    virtual int type (void) const;
    virtual ACE_Token_Proxy *clone (void) const;
  protected:
    virtual ACE_Tokens *create_token (const ASYS_TCHAR *name);
};
```

## DESCRIPTION

This is the remote equivalent to ACE\_Local\_RLock. Multiple readers can hold the lock simultaneously when no writers have the lock.  Alternatively, when a writer holds the lock, no other participants (readers or writers) may hold the lock. ACE\_Remote\_RLock depends on the ACE Token Server for its distributed synchronization semantics.

## PUBLIC MEMBERS

```
ACE_Remote_RLock (void);
```

```
ACE_Remote_RLock (
    const ASYS_TCHAR *token_name,
    int ignore_deadlock = 0,
    int debug = 0
    );
```

```
ACE_Remote_RLock (const ACE_Remote_RLock &mutex);
```

```
void dump (void) const;
```

Dump the state of the class.

```
virtual int type (void) const;
```

Returns ACE\_RW\_Token::RLOCK;

```
virtual ACE_Token_Proxy *clone (void) const;
```

Return deep copy.

## PROTECTED MEMBERS

```
virtual ACE_Tokens *create_token (const ASYS_TCHAR *name);
```

Make the correct type of ACE\_Tokens.  This is called by the Token Manager.

## AUTHOR

Douglas C. Schmidt (schmidt@cs.wustl.edu) and Tim Harrison (harrison@cs.wustl.edu)

## LIBRARY

ACE
