From 1a88af2094d75f129fc18b0155435a52684fd125 Mon Sep 17 00:00:00 2001 From: dborth Date: Sun, 6 Feb 2011 05:38:24 +0000 Subject: [PATCH] update net code --- source/networkop.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/networkop.cpp b/source/networkop.cpp index 4afaaa1..d9c105a 100644 --- a/source/networkop.cpp +++ b/source/networkop.cpp @@ -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);