joinable

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2020 License: MIT Imports: 4 Imported by: 0

README

Joinable

Joinable is goroutine wrapper that can be joined just like in other languages.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Joinable

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

Joinable 은 goroutine wrapping 클래스입니다. 다른 언어에서 쓰이던 join 개념이 없는 것이 개인적으로 불편해서 만들었습니다.

func NewJoinable

func NewJoinable(runnable Runnable) *Joinable

NewJoinable 메소드는 새로운 Joinable 인스턴스를 생성합니다.

func NewJoinableWithFunc

func NewJoinableWithFunc(runnable func()) *Joinable

NewJoinableWithFunc 메소드는 새로운 Joinable 인스턴스를 생성합니다. Runnable interface 를 구현하기 귀찮으신 분들을 위해서 준비했습니다.

func NewJoinableWithOption

func NewJoinableWithOption(opt *Option) *Joinable

NewJoinableWithOption 메소드는 새로운 Joinable 인스턴스를 생성합니다. Option 클래스에서 자세한 값을 확인해주세요.

func (*Joinable) Error

func (joinable *Joinable) Error() error

Error 메소드는 goroutine 실행 시 발생한 에러를 반환합니다.

func (*Joinable) HasError

func (joinable *Joinable) HasError() bool

HasError 메소드는 goroutine 실행 시 발생한 에러가 있는지를 확인합니다.

func (*Joinable) ID added in v0.1.1

func (joinable *Joinable) ID() uint64

ID 는 joinable 의 id 를 반환합니다.

func (*Joinable) Join

func (joinable *Joinable) Join()

Join 메소드는 goroutine 실행 종료를 대기합니다. 생성시 인자 혹은 Option 객체에 설정한 실제 Runnable 구현이 정상적으로 끝나지 않는다면 무한 대기하게 되므로, 꼭 Runnable 구현을 확인해주시기 바랍니다.

func (*Joinable) Start

func (joinable *Joinable) Start()

Start 메소드는 실제 goroutine 을 실행시킵니다.

func (*Joinable) String added in v0.1.1

func (joinable *Joinable) String() string

String 은 Joinable 을 string 으로 표현한 정보를 반환합니다.

type Option

type Option struct {
	// ShouldRecoverPanic 은 panic 이 발생했을 때 recover() 를 자동으로 호출할 지를 결정합니다.
	// 만약 직접 호출하기를 원하신다면, false 로 설정해주시기 바랍니다.
	ShouldRecoverPanic bool

	// Joinable 에 전달될 실제 Runnable 입니다.
	// Runnable 을 구현하는 struct 를 직접 작성하기 귀찮다면
	// func() 를 전달하는 방법도 제공하니 참고하시기 바랍니다.
	Runnable Runnable
}

Option 은 Joinable 을 위한 옵션 클래스입니다.

func NewOption

func NewOption(runnable Runnable, shouldRecoverPanic bool) *Option

NewOption 은 Runnable 을 받아 새로운 Option 을 생성합니다.

func NewOptionWithFunc

func NewOptionWithFunc(runnable func(), shouldRecoverPanic bool) *Option

NewOptionWithFunc 은 func() 을 받아 새로운 Option 을 생성합니다.

type Runnable

type Runnable interface {
	Run()
}

Runnable 은 Joinable 이 실행 가능한 작업을 나타내는 interface 입니다.

func WrapToRunnable

func WrapToRunnable(runnable func()) Runnable

WrapToRunnable 은 Runnable 을 구현하는 struct 를 만드는 것보다, 간단하게 func() 을 사용하고 싶어하시는 분들을 위한 함수입니다.

Jump to

Keyboard shortcuts

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