mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-20 22:05:12 +00:00
sys_net: Implement sys_net_abort
This commit is contained in:
parent
07ebbb6c84
commit
c0369b2e10
7 changed files with 156 additions and 22 deletions
|
|
@ -63,21 +63,24 @@ void lv2_socket::set_poll_event(bs_t<lv2_socket::poll_t> event)
|
|||
events += event;
|
||||
}
|
||||
|
||||
void lv2_socket::poll_queue(u32 ppu_id, bs_t<lv2_socket::poll_t> event, std::function<bool(bs_t<lv2_socket::poll_t>)> poll_cb)
|
||||
void lv2_socket::poll_queue(std::shared_ptr<ppu_thread> ppu, bs_t<lv2_socket::poll_t> event, std::function<bool(bs_t<lv2_socket::poll_t>)> poll_cb)
|
||||
{
|
||||
set_poll_event(event);
|
||||
queue.emplace_back(ppu_id, poll_cb);
|
||||
queue.emplace_back(std::move(ppu), poll_cb);
|
||||
}
|
||||
|
||||
void lv2_socket::clear_queue(u32 ppu_id)
|
||||
s32 lv2_socket::clear_queue(ppu_thread* ppu)
|
||||
{
|
||||
std::lock_guard lock(mutex);
|
||||
|
||||
s32 cleared = 0;
|
||||
|
||||
for (auto it = queue.begin(); it != queue.end();)
|
||||
{
|
||||
if (it->first == ppu_id)
|
||||
if (it->first.get() == ppu)
|
||||
{
|
||||
it = queue.erase(it);
|
||||
cleared++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -88,6 +91,8 @@ void lv2_socket::clear_queue(u32 ppu_id)
|
|||
{
|
||||
events.store({});
|
||||
}
|
||||
|
||||
return cleared;
|
||||
}
|
||||
|
||||
void lv2_socket::handle_events(const pollfd& native_pfd, [[maybe_unused]] bool unset_connecting)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue