we <3 kostily and velosipedy

reserve more or less ram based on open rpc sessions
not at all precise, but roughly leaves enough at all times
eg. fill, connect app, fill again, screenshare, can still send
This commit is contained in:
Willy-JL
2023-12-14 05:36:51 +00:00
parent 02ec1f0867
commit e8d9325bec
4 changed files with 22 additions and 1 deletions

View File

@@ -89,6 +89,7 @@ struct RpcSession {
struct Rpc {
FuriMutex* busy_mutex;
size_t sessions_count;
};
RpcOwner rpc_session_get_owner(RpcSession* session) {
@@ -412,6 +413,8 @@ RpcSession* rpc_session_open(Rpc* rpc, RpcOwner owner) {
furi_thread_start(session->thread);
rpc->sessions_count++;
return session;
}
@@ -419,6 +422,8 @@ void rpc_session_close(RpcSession* session) {
furi_assert(session);
furi_assert(session->rpc);
session->rpc->sessions_count--;
rpc_session_set_send_bytes_callback(session, NULL);
rpc_session_set_close_callback(session, NULL);
rpc_session_set_buffer_is_empty_callback(session, NULL);
@@ -494,3 +499,7 @@ void rpc_send_and_release_empty(RpcSession* session, uint32_t command_id, PB_Com
rpc_send_and_release(session, &message);
pb_release(&PB_Main_msg, &message);
}
size_t rpc_get_sessions_count(Rpc* rpc) {
return rpc->sessions_count;
}