mill.client.lock

Members list

Type members

Classlikes

class DoubleLock(lock1: Lock, lock2: Lock) extends Lock

Combines two locks into one, making sure we only lock if we can get both locks.

Combines two locks into one, making sure we only lock if we can get both locks.

Attributes

Source
DoubleLock.scala
Supertypes
class Lock
trait AutoCloseable
class Object
trait Matchable
class Any
class FileLock(path: String) extends Lock

Attributes

Source
FileLock.scala
Supertypes
class Lock
trait AutoCloseable
class Object
trait Matchable
class Any
abstract class Lock extends AutoCloseable

Attributes

Companion
object
Source
Lock.scala
Supertypes
trait AutoCloseable
class Object
trait Matchable
class Any
Known subtypes
class DoubleLock
class FileLock
class MemoryLock
class PidLock
object Lock

Attributes

Companion
class
Source
Lock.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Lock.type
trait Locked extends AutoCloseable

Attributes

Source
Lock.scala
Supertypes
trait AutoCloseable
class Object
trait Matchable
class Any
Known subtypes
trait TryLocked
final class Locks(val launcherLock: Lock, val daemonLock: Lock) extends AutoCloseable

Container for launcher and daemon locks.

Container for launcher and daemon locks.

Attributes

Companion
object
Source
Locks.scala
Supertypes
trait AutoCloseable
class Object
trait Matchable
class Any
object Locks

Attributes

Companion
class
Source
Locks.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Locks.type
class MemoryLock extends Lock

Attributes

Source
MemoryLock.scala
Supertypes
class Lock
trait AutoCloseable
class Object
trait Matchable
class Any
class PidLock(path: String) extends Lock

A lock implementation that uses atomic file creation and PID + timestamp checking. This works on filesystems that don't support file locking (e.g. Docker containers on macOS), but at the cost of potential race conditions.

A lock implementation that uses atomic file creation and PID + timestamp checking. This works on filesystems that don't support file locking (e.g. Docker containers on macOS), but at the cost of potential race conditions.

The lock file contains "pid:startTime" which uniquely identifies a process even if PIDs are reused after a process dies.

Attributes

Source
PidLock.scala
Supertypes
class Lock
trait AutoCloseable
class Object
trait Matchable
class Any
trait TryLocked extends Locked

Attributes

Source
Lock.scala
Supertypes
trait Locked
trait AutoCloseable
class Object
trait Matchable
class Any