mirror of
https://github.com/matrix-construct/construct
synced 2024-09-27 19:28: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;
|
struct prof;
|
||||||
|
|
||||||
extern conf::item<size_t> queue_cycles;
|
extern conf::item<size_t> queue_cycles;
|
||||||
|
extern std::shared_ptr<code> default_code;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "code.h"
|
#include "code.h"
|
||||||
|
|
|
@ -34,7 +34,7 @@ struct ircd::gpt::task
|
||||||
gpt::ctrl *ctrl {nullptr};
|
gpt::ctrl *ctrl {nullptr};
|
||||||
|
|
||||||
/// Pipe code
|
/// Pipe code
|
||||||
std::unique_ptr<pipe::code> code;
|
std::shared_ptr<pipe::code> code;
|
||||||
|
|
||||||
/// Pipe model
|
/// Pipe model
|
||||||
std::unique_ptr<pipe::model> model;
|
std::unique_ptr<pipe::model> model;
|
||||||
|
|
|
@ -251,7 +251,8 @@ try
|
||||||
}
|
}
|
||||||
,code
|
,code
|
||||||
{
|
{
|
||||||
std::make_unique<pipe::code>()
|
pipe::default_code?:
|
||||||
|
(pipe::default_code = std::make_shared<pipe::code>())
|
||||||
}
|
}
|
||||||
,model
|
,model
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,9 @@ namespace ircd::gpt::pipe
|
||||||
extern const ircd::run::changed quit_handler;
|
extern const ircd::run::changed quit_handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
decltype(ircd::gpt::pipe::default_code)
|
||||||
|
ircd::gpt::pipe::default_code;
|
||||||
|
|
||||||
decltype(ircd::gpt::pipe::queue_cycles)
|
decltype(ircd::gpt::pipe::queue_cycles)
|
||||||
ircd::gpt::pipe::queue_cycles
|
ircd::gpt::pipe::queue_cycles
|
||||||
{
|
{
|
||||||
|
@ -51,6 +54,7 @@ noexcept
|
||||||
|
|
||||||
cl::sync();
|
cl::sync();
|
||||||
ctx::yield();
|
ctx::yield();
|
||||||
|
pipe::default_code.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue