From c908d810330edba56b476229aba081997f251da7 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 14 Aug 2011 20:31:22 +0000 Subject: Bug hunting : la visualisation marche dans la fenêtre ncurses. Avec un mutex et la fin de l'algo de dump, ça marche mieux qu'avant (segfaults...) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///var/svn/2011-ddhardrescue/trunk@18 d3078510-dda0-49f1-841c-895ef4b7ec81 --- src/ddhardrescue.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/ddhardrescue.c') diff --git a/src/ddhardrescue.c b/src/ddhardrescue.c index ba6781e..691bf09 100644 --- a/src/ddhardrescue.c +++ b/src/ddhardrescue.c @@ -63,11 +63,18 @@ int main(int argc, char **argv) { srand(4); // Data structure initialization + // TODO : provides a standard method to do that ? memset(&slices, 0, sizeof(slices)); slices.data=slicesNewSingleton(args.beginSector, args.endSector, S_UNKNOWN); + if ( slices.data == NULL ) { + return 3; + } + slices.data->min=args.beginSector; + slices.data->max=args.endSector; + res=pthread_mutex_init(&(slices.eventListenerMutex), NULL); if (res!=0) { - return 3; + return 4; } // Threads preparation, creation and start @@ -78,7 +85,7 @@ int main(int argc, char **argv) { res=pthread_create(&tWorker, NULL, procWorker, &tArgs); if (res!=0) { - return 4; + return 5; } // Ncurses interface run in the main thread @@ -137,8 +144,7 @@ void cursesUpdateSliceDump(slices_evt_t *slicesEvt, slice_t *modifiedSlice) { //FIXME : do that realy pthread_mutex_lock(&ncursesWriteMutex); - - toPrint=slicesDump(slicesEvt->data, &blockSize, 1000, 0, 1000); + toPrint=slicesDump(slicesEvt->data, &blockSize, 1000, slicesEvt->data->min, slicesEvt->data->max); if (toPrint != NULL) { attron(COLOR_PAIR(4)); mvwprintw(winUpdateSliceDump, 1, 0, toPrint); -- cgit v1.2.3