update net code

This commit is contained in:
dborth 2011-02-06 05:38:15 +00:00
parent 422ea26b46
commit cb2b9de087

View File

@ -173,7 +173,7 @@ bool DownloadUpdate()
***************************************************************************/
static lwp_t networkthread = LWP_THREAD_NULL;
static u8 netstack[8192] ATTRIBUTE_ALIGN (32);
static u8 netstack[32768] ATTRIBUTE_ALIGN (32);
static void * netcb (void *arg)
{
@ -187,7 +187,7 @@ static void * netcb (void *arg)
retry = 5;
while (retry>0 && (netHalt != 2))
{
{
if(!first)
{
bool reset=false;
@ -197,6 +197,7 @@ static void * netcb (void *arg)
res = net_get_status();
if(res != -EBUSY) // trying to init net so we can't kill the net
{
usleep(2000);
net_wc24cleanup(); //kill the net
reset=true;
break;
@ -211,6 +212,7 @@ static void * netcb (void *arg)
}
first=false;
net_deinit();
usleep(2000);
res = net_init_async(NULL, NULL);
if(res != 0)
@ -221,7 +223,7 @@ static void * netcb (void *arg)
}
res = net_get_status();
wait = 400; // only wait 10 sec
wait = 400; // only wait 8 sec
while (res == -EBUSY && wait > 0 && (netHalt != 2))
{
usleep(20000);
@ -230,7 +232,6 @@ static void * netcb (void *arg)
}
if(res==0) break;
retry--;
usleep(2000);
}
@ -271,13 +272,11 @@ void StartNetworkThread()
***************************************************************************/
void StopNetworkThread()
{
if(networkthread == LWP_THREAD_NULL)
if(networkthread == LWP_THREAD_NULL || !LWP_ThreadIsSuspended(networkthread))
return;
netHalt = 2;
if(LWP_ThreadIsSuspended(networkthread))
LWP_ResumeThread(networkthread);
LWP_ResumeThread(networkthread);
// wait for thread to finish
LWP_JoinThread(networkthread, NULL);