// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. //go:build script package js import "sync" var SharedLibraryManager = NewLibraryManager() type LibraryManager struct { list []LibraryInterface locker sync.Mutex } func NewLibraryManager() *LibraryManager { return &LibraryManager{} } func (this *LibraryManager) Register(library LibraryInterface) { this.locker.Lock() this.list = append(this.list, library) this.locker.Unlock() } func (this *LibraryManager) All() []LibraryInterface { this.locker.Lock() defer this.locker.Unlock() return this.list }