mirror of
https://github.com/matrix-construct/construct
synced 2024-09-26 18:38:52 +02:00
ircd::gpt: Cache pipe::code instance in shared_ptr for task reuse.
This commit is contained in:
parent
9f79bb54b8
commit
1f947f982c
4 changed files with 8 additions and 2 deletions
|
@ -21,6 +21,7 @@ namespace ircd::gpt::pipe
|
|||
struct prof;
|
||||
|
||||
extern conf::item<size_t> queue_cycles;
|
||||
extern std::shared_ptr<code> default_code;
|
||||
};
|
||||
|
||||
#include "code.h"
|
||||
|
|
|
@ -34,7 +34,7 @@ struct ircd::gpt::task
|
|||
gpt::ctrl *ctrl {nullptr};
|
||||
|
||||
/// Pipe code
|
||||
std::unique_ptr<pipe::code> code;
|
||||
std::shared_ptr<pipe::code> code;
|
||||
|
||||
/// Pipe model
|
||||
std::unique_ptr<pipe::model> model;
|
||||
|
|
|
@ -251,7 +251,8 @@ try
|
|||
}
|
||||
,code
|
||||
{
|
||||
std::make_unique<pipe::code>()
|
||||
pipe::default_code?:
|
||||
(pipe::default_code = std::make_shared<pipe::code>())
|
||||
}
|
||||
,model
|
||||
{
|
||||
|
|
|
@ -16,6 +16,9 @@ namespace ircd::gpt::pipe
|
|||
extern const ircd::run::changed quit_handler;
|
||||
}
|
||||
|
||||
decltype(ircd::gpt::pipe::default_code)
|
||||
ircd::gpt::pipe::default_code;
|
||||
|
||||
decltype(ircd::gpt::pipe::queue_cycles)
|
||||
ircd::gpt::pipe::queue_cycles
|
||||
{
|
||||
|
@ -51,6 +54,7 @@ noexcept
|
|||
|
||||
cl::sync();
|
||||
ctx::yield();
|
||||
pipe::default_code.reset();
|
||||
}
|
||||
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue