var searchIndex = {}; searchIndex["forkjoin"] = {"doc":"","items":[[3,"Task","forkjoin","",null,null],[12,"fun","","",0,null],[12,"arg","","",0,null],[12,"join","","",0,null],[3,"Fork","","Struct describing how a `Task` want to fork into multiple subtasks.",null,null],[12,"fun","","A function pointer. The function that will be executed by all the subtasks",1,null],[12,"args","","A list of the arguments to the subtasks. One subtask will be created for each argument.",1,null],[12,"join","","Enum showing the type of algorithm, indicate what should be done with results from\nsubtasks created by this fork.",1,null],[3,"JoinBarrier","","Internal struct for receiving results from multiple subtasks in parallel",null,null],[12,"ret_counter","","Atomic counter counting missing arguments before this join can be executed.",2,null],[12,"joinfun","","Function pointer to execute when all arguments have arrived.",2,null],[12,"joinfunarg","","Vector holding the results of all subtasks. Initialized unsafely so can't be used\nfor anything until all the values have been put in place.",2,null],[12,"parent","","Where to send the result of the execution of `joinfun`",2,null],[3,"ForkPool","","Main struct of the ForkJoin library.\nRepresents a pool of threads implementing a work stealing algorithm.",null,null],[4,"TaskResult","","Return values from tasks. Represent a computed value or a fork of the algorithm.",null,null],[13,"Done","","Return this from `TaskFun` to indicate a computed value. Represents a leaf in the\nproblem tree of the computation.",3,null],[13,"Fork","","Return this from `TaskFun` to indicate that the algorithm wants to fork.\nTakes a `Fork` instance describing how to fork.",3,null],[4,"AlgoStyle","","Enum representing the style of the executed algorithm.",null,null],[13,"Summa","","A `Summa` style algorithm join together the results of the individual nodes\nin the problem tree to finally form one result for the entire computation.",4,null],[13,"Search","","A `Search` style algoritm return their results to the listener directly upon a\n`TaskResult::Done`.",4,null],[4,"ResultReceiver","","Enum describing what to do with results of `Task`s and `JoinBarrier`s.",null,null],[13,"Join","","Algorithm has Summa style and the value should be inserted into a `JoinBarrier`",5,null],[13,"Channel","","Algorithm has Search style and results should be sent directly to the owner.",5,null],[4,"WorkerMsg","","Messages from the `PoolSupervisor` to `WorkerThread`s",null,null],[13,"Schedule","","A new `Task` to be scheduled for execution by the `WorkerThread`",6,null],[13,"Steal","","Tell the `WorkerThread` to simply try to steal from the other `WorkerThread`s",6,null],[4,"SupervisorMsg","","Messages from `ForkPool` and `WorkerThread` to the `PoolSupervisor`.",null,null],[13,"OutOfWork","","The WorkerThreads use this to tell the `PoolSupervisor` they don't have anything\nto do and that stealing did not give any new `Task`s.\nThe argument `usize` is the id of the `WorkerThread`.",7,null],[13,"Schedule","","The `ForkPool` uses this to schedule new tasks on the `PoolSupervisor`.\nThe `PoolSupervisor` will later schedule these to a `WorkerThread` when it see fit.",7,null],[13,"Shutdown","","Message from the `ForkPool` to the `PoolSupervisor` to tell it to shutdown.",7,null],[6,"TaskFun","","Type definition of the main function in a task.\nYour task functions must have this signature",null,null],[6,"TaskJoin","","Type definition of functions joining together forked results.\nOnly used in `AlgoStyle::Summa` algorithms.",null,null],[11,"clone","","",5,null],[11,"new","","Create a new `ForkPool` using num_cpus to determine pool size",8,{"inputs":[],"output":{"name":"forkpool"}}],[11,"with_threads","","Create a new `ForkPool` with `nthreads` `WorkerThread`s at its disposal.",8,{"inputs":[{"name":"usize"}],"output":{"name":"forkpool"}}],[11,"schedule","","Schedule a new computation on this `ForkPool`. Returns instantly.",8,null],[11,"drop","","",8,null]],"paths":[[3,"Task"],[3,"Fork"],[3,"JoinBarrier"],[4,"TaskResult"],[4,"AlgoStyle"],[4,"ResultReceiver"],[4,"WorkerMsg"],[4,"SupervisorMsg"],[3,"ForkPool"]]}; initSearch(searchIndex);