semaphore

package module
v0.0.0-...-73214fe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2023 License: MIT Imports: 4 Imported by: 0

README

semaphore

POSIX semaphore library for Golang

Usage

package main

import (
	"log"
	"time"

	"github.com/zzhaolei/semaphore"
)

func main() {
	name := "test"
	mode := 0o644
	value := 2

	s := semaphore.New()
	if err := s.Open(name, mode, value); err != nil {
		log.Fatal(err)
	}

	log.Println("acquire...")
	s.Acquire()
	// if err := s.TryAcquire(); err != nil {
	// 	log.Fatal(err)
	// }

	log.Println("running...")
	time.Sleep(time.Second * 5)

	s.Release()
	log.Println("release")

	s.Unlink("test")
	log.Println("close and unlink")
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Semaphore

type Semaphore struct {
	// contains filtered or unexported fields
}

func New

func New() *Semaphore

func (*Semaphore) Acquire

func (sem *Semaphore) Acquire()

func (*Semaphore) Open

func (sem *Semaphore) Open(name string, mode int, value int) error

func (*Semaphore) Release

func (sem *Semaphore) Release()

func (*Semaphore) TryAcquire

func (sem *Semaphore) TryAcquire() error
func (sem *Semaphore) Unlink(name string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL