Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40bc6024 authored by Yabin Cui's avatar Yabin Cui Committed by Android Git Automerger
Browse files

am fb070f3c: am 7377398b: Merge "adb: fdevent fixes"

* commit 'fb070f3c':
  adb: fdevent fixes
parents 075f690d fb070f3c
Loading
Loading
Loading
Loading
+10 −11
Original line number Original line Diff line number Diff line
@@ -174,20 +174,19 @@ void fdevent_set(fdevent* fde, unsigned events) {
    if ((fde->state & FDE_EVENTMASK) == events) {
    if ((fde->state & FDE_EVENTMASK) == events) {
        return;
        return;
    }
    }
    if (fde->state & FDE_ACTIVE) {
    CHECK(fde->state & FDE_ACTIVE);
    fdevent_update(fde, events);
    fdevent_update(fde, events);
    D("fdevent_set: %s, events = %u", dump_fde(fde).c_str(), events);
    D("fdevent_set: %s, events = %u", dump_fde(fde).c_str(), events);


    if (fde->state & FDE_PENDING) {
    if (fde->state & FDE_PENDING) {
        // If we are pending, make sure we don't signal an event that is no longer wanted.
        // If we are pending, make sure we don't signal an event that is no longer wanted.
            fde->events &= ~events;
        fde->events &= events;
        if (fde->events == 0) {
        if (fde->events == 0) {
            g_pending_list.remove(fde);
            g_pending_list.remove(fde);
            fde->state &= ~FDE_PENDING;
            fde->state &= ~FDE_PENDING;
        }
        }
    }
    }
}
}
}


void fdevent_add(fdevent* fde, unsigned events) {
void fdevent_add(fdevent* fde, unsigned events) {
    fdevent_set(fde, (fde->state & FDE_EVENTMASK) | events);
    fdevent_set(fde, (fde->state & FDE_EVENTMASK) | events);
@@ -262,7 +261,7 @@ static void fdevent_call_fdfunc(fdevent* fde)
{
{
    unsigned events = fde->events;
    unsigned events = fde->events;
    fde->events = 0;
    fde->events = 0;
    if(!(fde->state & FDE_PENDING)) return;
    CHECK(fde->state & FDE_PENDING);
    fde->state &= (~FDE_PENDING);
    fde->state &= (~FDE_PENDING);
    D("fdevent_call_fdfunc %s", dump_fde(fde).c_str());
    D("fdevent_call_fdfunc %s", dump_fde(fde).c_str());
    fde->func(fde->fd, events, fde->arg);
    fde->func(fde->fd, events, fde->arg);