Guix System Thread not running

I am using e2stuido 2023-10 Guix 6.3.0

Guix System Thread running for 7 times and stops. other threads continue to work.

If I send KeyDown events, Message Queue is getting full

Stack Tab not showing anything

GUIX System Thread Stack. It is waiting for Semaphore.

window1_handler not receiving Touch Events. Touch Events are sent by callback functions.

window1_handler gets two events at start up. Got focus and Show Window events.

subsequent events are not receiving. 

 

void sf_touch_panel_v2_callback(sf_touchpanel_v2_callback_args_t *p_args)
{
    bool send_event = true;
    GX_EVENT * p_gx_event = &g_gx_event;
    sf_touch_panel_v2_payload_t const * const p_payload = &p_args->payload;


    switch (p_payload->event_type)
    {
        /* New touch event reported. */
        case SF_TOUCH_PANEL_V2_EVENT_DOWN:
            p_gx_event->gx_event_type = GX_EVENT_PEN_DOWN;
            break;

        /* Touch released. */
        case SF_TOUCH_PANEL_V2_EVENT_UP:
            p_gx_event->gx_event_type = GX_EVENT_PEN_UP;
            break;

        /* Touch has not moved since last touch event. */
        /* Touch has moved since last touch event. */
        case SF_TOUCH_PANEL_V2_EVENT_HOLD:
        case SF_TOUCH_PANEL_V2_EVENT_MOVE:
            p_gx_event->gx_event_type = GX_EVENT_PEN_DRAG;
            break;


        /* No valid touch event happened. */
        /* Invalid touch data */
        case SF_TOUCH_PANEL_V2_EVENT_NONE:
        case SF_TOUCH_PANEL_V2_EVENT_INVALID:
        default:
            send_event = false;
            break;
    }

    if (send_event)
    {
        /** Send event to GUI */
        p_gx_event->gx_event_sender = GX_ID_NONE;
        p_gx_event->gx_event_target = 0;
        p_gx_event->gx_event_display_handle = 0;

        p_gx_event->gx_event_payload.gx_event_pointdata.gx_point_x = p_payload->x;

        p_gx_event->gx_event_payload.gx_event_pointdata.gx_point_y = p_payload->y;

        // send Touch Event to Window
        UINT status = gx_system_event_send(p_gx_event);

        /* Confirm that the event flags were set */
        if (TX_SUCCESS != status)
        {
            while (1)
            {
                LED2Toggle();
            }
        }
    }
}

window1_handler()

UINT window1_handler(GX_WINDOW *widget, GX_EVENT *event_ptr)
{
    UINT result = gx_window_event_process(widget, event_ptr);

    switch (event_ptr->gx_event_type)
    {
    case GX_SIGNAL(ID_BUTTON_ENABLER, GX_EVENT_TOGGLE_ON):
        button_enabled = true;
        update_button_text_id(widget->gx_widget_parent, ID_WINDOW_CHANGER, GX_STRING_ID_BUTTON_ENABLED);
        update_prompt_text_id(widget->gx_widget_parent, ID_INSTRUCTIONS, GX_STRING_ID_INSTRUCT_BUTTON);
        break;
    case GX_SIGNAL(ID_BUTTON_ENABLER, GX_EVENT_TOGGLE_OFF):
        button_enabled = false;
        update_button_text_id(widget->gx_widget_parent, ID_WINDOW_CHANGER, GX_STRING_ID_BUTTON_DISABLED);
        update_prompt_text_id(widget->gx_widget_parent, ID_INSTRUCTIONS, GX_STRING_ID_INSTRUCT_CHECKBOX);
        break;
    case GX_SIGNAL(ID_WINDOW_CHANGER, GX_EVENT_CLICKED):
        if(button_enabled){
            show_window((GX_WINDOW*)&window2, (GX_WIDGET*)widget, true);
        }
        break;
    case GX_EVENT_FOCUS_LOST:

        break;
    case GX_EVENT_KEY_DOWN:
        show_window((GX_WINDOW*)&window2, (GX_WIDGET*)widget, true);
        break;
    default:
        gx_window_event_process(widget, event_ptr);
        break;
    }

    return result;
}