Remove worker pool.

Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
This commit is contained in:
Antonio Navarro Perez 2020-06-03 11:15:01 +02:00
parent 40eefbf008
commit ae4be076f9
11 changed files with 16 additions and 45 deletions

View file

@ -1,6 +1,5 @@
GeneralChart.init();
var cacheChart = new SingleBarChart("chart-cache", "Cache disk");
var workerChart = new SingleBarChart("chart-workers", "Workers");
fetchData();
setInterval(function () {
@ -22,7 +21,6 @@ function fetchData() {
GeneralChart.update(download, upload);
cacheChart.update(stats.cacheFilled, stats.cacheCapacity - stats.cacheFilled);
workerChart.update(0, stats.poolFree - stats.poolCap);
document.getElementById("down-speed-text").innerText =
Humanize.bytes(download, 1024) + "/s";

View file

@ -3,7 +3,7 @@ function SingleBarChart(id, name) {
this._used = [];
this._free = [];
this._chart = new Chart(ctx, {
type: 'bar',
type: 'horizontalBar',
data: {
labels:[name],
datasets: [{

View file

@ -19,7 +19,6 @@ import (
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
"github.com/goccy/go-yaml"
"github.com/panjf2000/ants/v2"
"github.com/shurcooL/httpfs/html/vfstemplate"
)
@ -67,13 +66,8 @@ func main() {
log.Fatal(err)
}
pool, err := ants.NewPool(100)
if err != nil {
log.Fatal(err)
}
ss := stats.NewTorrent()
mountService := mount.NewHandler(c, pool, ss)
mountService := mount.NewHandler(c, ss)
sigChan := make(chan os.Signal)
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
@ -82,8 +76,6 @@ func main() {
<-sigChan
log.Println("Closing torrent client...")
c.Close()
log.Println("Releasing execution pool...")
pool.Release()
log.Println("Unmounting fuse filesystem...")
mountService.Close()
@ -123,8 +115,6 @@ func main() {
"cacheItems": fc.Info().NumItems,
"cacheFilled": fc.Info().Filled / 1024 / 1024,
"cacheCapacity": fc.Info().Capacity / 1024 / 1024,
"poolCap": pool.Cap(),
"poolFree": pool.Free(),
"torrentStats": ss.GlobalStats(),
})
})

View file

@ -23,7 +23,6 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.1 // indirect
github.com/mschoch/smat v0.2.0 // indirect
github.com/panjf2000/ants/v2 v2.3.1
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749
github.com/stretchr/testify v1.4.0
github.com/tinylib/msgp v1.1.2 // indirect

View file

@ -287,8 +287,6 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
github.com/panjf2000/ants/v2 v2.3.1 h1:9iOZHO5XlSO1Gs5K7x06uDFy8bkicWlhOKGh/TufAZg=
github.com/panjf2000/ants/v2 v2.3.1/go.mod h1:LtwNaBX6OeF5qRtQlaeGndalVwJlS2ueur7uwoAHbPA=
github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ=
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I=

View file

@ -11,7 +11,6 @@ import (
"github.com/anacrolix/torrent"
"github.com/hanwen/go-fuse/v2/fs"
"github.com/hanwen/go-fuse/v2/fuse"
"github.com/panjf2000/ants/v2"
)
type Handler struct {
@ -19,16 +18,14 @@ type Handler struct {
s *stats.Torrent
opts *fs.Options
pool *ants.Pool
servers map[string]*fuse.Server
}
func NewHandler(c *torrent.Client, pool *ants.Pool, s *stats.Torrent) *Handler {
func NewHandler(c *torrent.Client, s *stats.Torrent) *Handler {
return &Handler{
c: c,
s: s,
opts: &fs.Options{},
pool: pool,
servers: make(map[string]*fuse.Server),
}
}
@ -69,7 +66,7 @@ func (s *Handler) Mount(mpc *config.MountPoint) error {
return err
}
node := node.NewRoot(torrents, s.pool)
node := node.NewRoot(torrents)
server, err := fs.Mount(mpc.Path, node, s.opts)
if err != nil {
return err

View file

@ -8,7 +8,6 @@ import (
"github.com/anacrolix/torrent"
"github.com/hanwen/go-fuse/v2/fs"
"github.com/hanwen/go-fuse/v2/fuse"
"github.com/panjf2000/ants/v2"
)
var _ fs.NodeOnAdder = &Root{}
@ -16,23 +15,20 @@ var _ fs.NodeGetattrer = &Root{}
type Root struct {
fs.Inode
pool *ants.Pool
torrents []*torrent.Torrent
}
func NewRoot(torrents []*torrent.Torrent, pool *ants.Pool) *Root {
return &Root{torrents: torrents, pool: pool}
func NewRoot(torrents []*torrent.Torrent) *Root {
return &Root{torrents: torrents}
}
func (root *Root) OnAdd(ctx context.Context) {
for _, torrent := range root.torrents {
root.pool.Submit(func() {
root.AddChild(
filepath.Clean(torrent.Name()),
root.NewPersistentInode(ctx, &Torrent{t: torrent, pool: root.pool}, fs.StableAttr{
root.NewPersistentInode(ctx, &Torrent{t: torrent}, fs.StableAttr{
Mode: syscall.S_IFDIR,
}), true)
})
}
}

View file

@ -9,7 +9,6 @@ import (
"github.com/anacrolix/torrent"
"github.com/hanwen/go-fuse/v2/fs"
"github.com/hanwen/go-fuse/v2/fuse"
"github.com/panjf2000/ants/v2"
)
var _ fs.NodeOnAdder = &Torrent{}
@ -18,8 +17,6 @@ var _ fs.NodeGetattrer = &Torrent{}
type Torrent struct {
fs.Inode
t *torrent.Torrent
pool *ants.Pool
}
func (folder *Torrent) OnAdd(ctx context.Context) {
@ -27,7 +24,6 @@ func (folder *Torrent) OnAdd(ctx context.Context) {
file := file
LoadNodeByPath(
ctx,
folder.pool,
file.Path(),
func() (io.ReaderAt, error) { return iio.NewReadAtWrapper(file.NewReader()), nil },
&folder.Inode,

View file

@ -10,12 +10,11 @@ import (
"github.com/hanwen/go-fuse/v2/fs"
"github.com/hanwen/go-fuse/v2/fuse"
"github.com/panjf2000/ants/v2"
)
type ReaderFunc func() (io.ReaderAt, error)
func LoadNodeByPath(ctx context.Context, pool *ants.Pool, fp string, reader ReaderFunc, parent *fs.Inode, fileLength int64, pieceLen int32, numPieces int64) {
func LoadNodeByPath(ctx context.Context, fp string, reader ReaderFunc, parent *fs.Inode, fileLength int64, pieceLen int32, numPieces int64) {
p := parent
dir, base := filepath.Split(filepath.Clean(fp))
for i, component := range strings.Split(dir, "/") {

View file

@ -50,7 +50,6 @@ func (z *Zip) Opendir(ctx context.Context) syscall.Errno {
}
LoadNodeByPath(
ctx,
nil,
f.Name,
func() (io.ReaderAt, error) {
zfr, err := f.Open()

View file

@ -10,13 +10,15 @@
<div class="container">
<div class="row">
<div class="col">
<canvas id="chart-general-network"></canvas>
<canvas id="chart-general-network" height="150"></canvas>
</div>
</div>
<div class="row">
<div class="col-sm">
<canvas id="chart-cache" height="400"></canvas>
<canvas id="chart-cache" height="20"></canvas>
</div>
</div>
<div class="row">
<div class="col-sm">
<h3>
<svg class="bi bi-arrow-down" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor"
@ -43,9 +45,6 @@
<span id="up-speed-text"></span>
</h3>
</div>
<div class="col-sm">
<canvas id="chart-workers" height="400"></canvas>
</div>
</div>
</div>
{{template "common_footer.html"}}