### Function

# Camel lock_folder

#### Declaration [src]

    gint
    camel_lock_folder (
      const gchar* path,
      gint fd,
      CamelLockType type,
      GError** error
    )

#### Description [src]

Attempt to lock a folder, multiple attempts will be made using all locking strategies available.

#### Parameters

`path`

  Type: `const gchar*`

  Path to the file to lock (used for .locking only).

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`fd`

  Type: `gint`

  Open file descriptor of the right type to lock.

`type`

  Type: `CamelLockType`

  Type of lock, CAMEL_LOCK_READ or CAMEL_LOCK_WRITE.

`error`

  Type: `GError **`

  The return location for a recoverable error.

  The argument can be `NULL`.
  If the return location is not `NULL`, then you must initialize it to a `NULL` `GError*`.
  The argument will be left initialized to `NULL` by the function if there are no errors.
  In case of error, the argument will be set to a newly allocated `GError`; the caller will take ownership of the data, and be responsible for freeing it.

#### Return value

Type: `gint`

-1 on error, `ex` will describe the locking system that failed.