VirtualBox

Ignore:
Timestamp:
Sep 15, 2010 11:35:29 AM (14 years ago)
Author:
vboxsync
Message:

crOpenGL: retry aborted hgcm calls

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c

    r30440 r32511  
    3636#include "cr_threads.h"
    3737#include "net_internals.h"
     38
     39#include <iprt/thread.h>
    3840
    3941#if 1 /** @todo Try use the Vbgl interface instead of talking directly to the driver? */
     
    190192#  ifdef RT_OS_LINUX
    191193    if (rc >= 0) /* positive values are negated VBox error status codes. */
     194    {
    192195        crWarning("vboxCall failed with VBox status code %d\n", -rc);
     196        if (rc==VINF_INTERRUPTED)
     197        {
     198            RTMSINTERVAL sl;
     199            int i;
     200
     201            for (i=0, sl=50; i<6; i++, sl=sl*2)
     202            {
     203                RTThreadSleep(sl);
     204                rc = ioctl(g_crvboxhgcm.iGuestDrv, VBOXGUEST_IOCTL_HGCM_CALL(cbData), pvData);
     205                if (rc==0)
     206                {
     207                    crWarning("vboxCall retry(%i) succeded", i+1);
     208                    return VINF_SUCCESS;
     209                }
     210                else if (rc==VINF_INTERRUPTED)
     211                {
     212                    continue;
     213                }
     214                else
     215                {
     216                    crWarning("vboxCall retry(%i) failed with VBox status code %d", i+1, -rc);
     217                    break;
     218                }
     219            }
     220        }
     221    }
    193222    else
    194223#  endif
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette