Sponsored Content
Full Discussion: Multi-threading
Top Forums Programming Multi-threading Post 302505312 by Corona688 on Wednesday 16th of March 2011 04:35:11 PM
Old 03-16-2011
Checking this in more detail, but for starters you shouldn't be using cin/cout/cerr in threads. You shouldn't be mixing printf() and cout even without threads, they compete for the same resources. cout/printf also buffer for one thing, which creates more potential race conditions unless you mutex it. fprintf(stderr, ...) would be better if you must, since it's unbuffered and less likely to interrupt each other in the middle of a line. write()-ing to STDERR_FILENO would be best.

---------- Post updated at 02:35 PM ---------- Previous update was at 02:27 PM ----------

You're missing some brackets from here I think:

Code:
     for(int i = 0; i < neighbours_size; i++)
     {
           temp = nodes[index].edges[i];
           fprintf(stderr, "temp =  %d", temp);
               if(nodes[temp].msg_received == false)
               fprintf(stderr, "--> %d\n",  nodes[temp].msg_received);

                       fprintf(stderr, "returning false..\n");
                  return false;
     }

Without a code block, the if-statement only applies to the first statement below it. Meaning, no matter what the result of the if-statement is, it will always return false on the very first loop. If I infer the meaning of your code correctly, what you wanted was this:
Code:
     for(int i = 0; i < neighbours_size; i++)
     {
           temp = nodes[index].edges[i];
           fprintf(stderr, "temp =  %d", temp);
               if(nodes[temp].msg_received == false)
               {
                       fprintf(stderr, "--> %d\n",  nodes[temp].msg_received);
                       fprintf(stderr, "returning false..\n");
                       return false;
               }
     }

This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. Programming

Multi threading using posix thread library

hi all, can anyone tell me some good site for the mutithreading tutorials, its application, and some code examples. -sushil (2 Replies)
Discussion started by: shushilmore
2 Replies

2. Programming

Multi-threading questions

I've been doing some reading lately about threading (Posix threads) and I'm really curious about a couple things that I've read. I'm not sure if many people here have threading experience, but I thought it would be nice to be able to discuss some questions about it. (For the record, I did... (1 Reply)
Discussion started by: DreamWarrior
1 Replies

3. Programming

Multi threading using fork

Hi, I have written a code which will run a set of process using fork. I want to know from You how can i start another job when one of my job in my loop is completed My code is #include<stdio.h> #include<ctype.h> main() { int pid,cid; ChildProcess(); ... (1 Reply)
Discussion started by: sureshraju_ma
1 Replies

4. Programming

Regarding Multi-Threading

Hi All, Here's my question I have a 385 MB file containing 5,000,000 records. I need to read from the file and load into a table. Initially i thought of doing it in a single thread (execution of a single program) but when calculated accounted 16 hours of time on a standard benchmark. Hence... (5 Replies)
Discussion started by: matrixmadhan
5 Replies

5. Programming

Multi threading?

I am not sure if multi threading is the correct term, but here is what I am trying to do. I have a while loop that displays the number 1, pauses, displays the number 2, pauses , displays the number 3 ad infinitum. It just keeps counting. While the screen displays the sequence of numbers counting... (4 Replies)
Discussion started by: enuenu
4 Replies

6. Programming

Multi-threading-- calling same function through different threads

Sir, Can I call same function in the start routines of different Threads. I have created two different threads....and wanna call same function from both threads....is it possible??? Also can I fork inside a thread??? (1 Reply)
Discussion started by: arunchaudhary19
1 Replies

7. Programming

Multi-threading

Hi, If we create 10 threads to invoke runQuery method at same time, Will queryProcessor will be overriden sometime or 10 different copies will be created? We are not using any sunchronzation mechnism in runQuery(). so there is not gurantee on QueryProcessor class variables right OR each 10... (1 Reply)
Discussion started by: jramesh1
1 Replies

8. UNIX for Dummies Questions & Answers

Confusion over Multi Threading

Hi, I am trying to get my head round Multi Threading and I have a few queries to try and clear up my confusion Q1. Is multi threading a hardware / chip level concept, an OS level or an application level concept ? I am trying to work out where SMT architecture fits in. Q2. What's the multi... (3 Replies)
Discussion started by: jimthompson
3 Replies

9. UNIX for Beginners Questions & Answers

Does UNIX support multi-Threading ?

Not just background process running ... but im looking if unix has any multi-threading concept like in Java, C# ... if not present, can you pls share the nearest feature in unix that is close to multi-threaded concept (3 Replies)
Discussion started by: i4ismail
3 Replies

10. UNIX for Beginners Questions & Answers

Multi threading in UNIX

Hi, Can we apply multi threading in Unix. I am using bash shell. We have a generic script to load the data to table based on file input. For each file there is an individual table to load. For each file found in directory I want to load the data in parallel to target table using ... (3 Replies)
Discussion started by: vedanta
3 Replies
GFS_PIO_GETS(3) 														   GFS_PIO_GETS(3)

NAME
gfs_pio_gets - read one line SYNOPSIS
#include <gfarm/gfarm.h> char *gfs_pio_gets (GFS_File f, char * s, size_t size); DESCRIPTION
gfs_pio_gets() reads one line from the file specified by the parameter gf to the buffer specified by the parameter s. You need to specify the size of the buffer by the parameter size. Unlike gfs_pio_getline(3), this function doesn't remove newline character at the end of the buffer. But if whole contents of the line can- not be stored to the buffer due to its length, or if the file reaches the end without newline, there will be no newline at the end of the buffer. In any case, one '' character is appended to the end of the buffer. If the file reaches its end, the length of the string in the buffer becomes 0. RETURN VALUES
NULL The function terminated successfully. GFARM_ERR_NO_MEMORY Insufficient memory was available. Others An error except the above occurred. The reason is shown by its pointed strings. EXAMPLES
EXAMPLE OF GFS_PIO_GETS FUNCTION #include <stdio.h> #include <stdlib.h> #include <gfarm/gfarm.h> int main(int argc, char **argv) { char *e; GFS_File gf; char buffer[512]; e = gfarm_initialize(&argc, &argv); if (e != NULL) { fprintf(stderr, "gfarm_initialize: %s ", e); return (EXIT_FAILURE); } if (argc <= 1) { fprintf(stderr, "missing gfarm filename "); return (EXIT_FAILURE); } e = gfs_pio_open(argv[1], GFARM_FILE_RDONLY, &gf); if (e != NULL) { fprintf(stderr, "%s: %s ", argv[1], e); return (EXIT_FAILURE); } e = gfs_pio_set_view_global(gf, 0); if (e != NULL) { fprintf(stderr, "%s: gfs_pio_set_view_global: %s ", argv[1], e); return (EXIT_FAILURE); } while ((e = gfs_pio_gets(gf, buffer, sizeof buffer)) != NULL && *buffer != '') { printf("got: %s", buffer); } if (e != NULL) { fprintf(stderr, "ERROR: %s ", e); return (EXIT_FAILURE); } e = gfs_pio_close(gf); if (e != NULL) { fprintf(stderr, "gfs_pio_close: %s ", e); return (EXIT_FAILURE); } e = gfarm_terminate(); if (e != NULL) { fprintf(stderr, "gfarm_initialize: %s ", e); return (EXIT_FAILURE); } return (EXIT_SUCCESS); } SEE ALSO
gfs_pio_open(3), gfs_pio_getline(3), gfs_pio_readline(3), gfs_pio_readdelim(3) Gfarm 13 May 2004 GFS_PIO_GETS(3)
All times are GMT -4. The time now is 03:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy