0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-17 01:18:39 +02:00

ircd::gpt: Cache pipe::code instance in shared_ptr for task reuse.

This commit is contained in:
Jason Volk 2022-07-31 02:46:05 -07:00
parent 9f79bb54b8
commit 1f947f982c
4 changed files with 8 additions and 2 deletions

View file

@ -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"

View file

@ -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;

View file

@ -251,7 +251,8 @@ try
}
,code
{
std::make_unique<pipe::code>()
pipe::default_code?:
(pipe::default_code = std::make_shared<pipe::code>())
}
,model
{

View file

@ -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();
}
//