#ParallelManager

1 messages · Page 1 of 1 (latest)

silk edge
#

Parallel Manager with ease

local ParallelManagerMeta = {}
local ParallelManager = {}

function ParallelManager.new(worker : Script, core : number)
    local self = setmetatable({},{__index = ParallelManagerMeta})
    self.__actors = {}
    self.worker = worker
    self.Core = core
    self.CoreFolder = Instance.new("Folder")
    self.CoreFolder.Name = "ParallelManager_"..os.clock()
    self.CoreIndex = 0
    
    for i = 0, core-1 do
        local actor = Instance.new("Actor")
        local thread = self.worker:Clone()
        thread.Parent = actor
        
        self.__actors[i] = actor
        
        actor.Parent = self.CoreFolder
    end
    
    self.CoreFolder.Parent = script
    
    return self
end

function ParallelManagerMeta:GetNextActor() : Actor
    self.CoreIndex += 1
    self.CoreIndex %= self.Core
    
    return self.__actors[self.CoreIndex]
end

function ParallelManagerMeta:Destroy()
    for i, actor in self.__actors do
        actor:Destroy()
    end
    
    table.clear(self.__actors)
    self.CoreFolder:Destroy()
    
    setmetatable(self,nil)
end

return ParallelManager
worthy cobalt
#

parallel?

silk edge
#

it just a module to set up parellel scripting easy

silk edge
#

ParallelManager

#

?

#

wait

#

ParellelManager

worthy cobalt
#

its parallel
with an a there

silk edge
#

ParallelManager

worthy cobalt
#

which is also all throughout the module
so

#

there you go

silk edge
#

done

worthy cobalt