Skip to content

Import path: gitlab.soludian.com/soludian/fountain/libs/fcycle

fcycle

go
import "gitlab.soludian.com/soludian/fountain/libs/fcycle"

Index

type Cycle

Cycle ..

go
type Cycle struct {
    // contains filtered or unexported fields
}

func NewCycle

go
func NewCycle() *Cycle

NewCycle new a cycle life

func (*Cycle) Close

go
func (c *Cycle) Close()

Close sử dụng để đóng kênh quit. Nếu muốn đóng tất cả các goroutine đang chạy, nên sử dụng phương thức DoneAndClose()

func (*Cycle) Done

go
func (c *Cycle) Done() <-chan struct{}

Done được sử dụng để chặn và trả về một kênh kiểu struct{}. Khi tất cả các goroutine đã chạy xong, kênh này sẽ được đóng.

func (*Cycle) DoneAndClose

go
func (c *Cycle) DoneAndClose()

DoneAndClose sẽ đợi cho tất cả các goroutine chạy xong và sau đó đóng tất cả các kênh. Phương thức này chỉ nên được gọi khi muốn đóng tất cả các goroutine đang chạy và kết thúc quá trình.

func (*Cycle) Run

go
func (c *Cycle) Run(fn func() error)

Run được sử dụng để chạy một goroutine mới. Tham số đầu vào của phương thức này là một hàm mà trả về một giá trị kiểu error. Goroutine sẽ được chạy trong một goroutine riêng biệt. Nếu hàm truyền vào trả về một giá trị lỗi, phương thức này sẽ gửi giá trị lỗi đó qua kênh quit.

func (*Cycle) Wait

go
func (c *Cycle) Wait(hang bool) <-chan error

Wait được sử dụng để chặn và trả về một kênh kiểu error. Kênh này sẽ nhận giá trị lỗi nếu một trong các goroutine trả về lỗi. Nếu muốn đợi cho tất cả các goroutine kết thúc và sau đó đóng tất cả các kênh, nên sử dụng phương thức DoneAndClose(). Tham số hang được sử dụng để chỉ định liệu phương thức Wait() có nên chặn cho đến khi tất cả các goroutine kết thúc hay không. Nếu hang được đặt thành true, phương thức Wait() sẽ chặn cho đến khi tất cả các goroutine kết thúc và kênh trả về sẽ được đóng. Nếu hang được đặt thành false, phương thức Wait() sẽ trả về kênh ngay lập tức sau khi tất cả các goroutine kết thúc.

Generated by gomarkdoc