- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 41 bis 50 von 94

Thema: pthread: was genau macht "joinable" und was macht "detached"?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #26
    HaWe
    Gast
    Zitat Zitat von schorsch_76 Beitrag anzeigen
    Ich kann heut Abend ein kleines Sample schreiben

    EDIT:
    Das mit dem Subprozess kann sicher auch nach einem wegbrechen des ttys wieder starten. Wenn der tty einfach nicht mehr zu öffnen ist, dann wird auch das nichts werden.

    Um das Arduino Protokol wieder zu syncen, muss halt das Protokoll "syncbar" sein. Der Arduino hat ja nichts davon mitbekommen.

    Wie schaut denn das Protokoll aus?
    dankeschön!
    das Arduino-Prog iat hier: https://www.roboternetz.de/community...l=1#post652616

    - - - Aktualisiert - - -

    Zitat Zitat von HaWe Beitrag anzeigen
    dankeschön!
    das Arduino-Prog iat hier: https://www.roboternetz.de/community...l=1#post652616

    meine grobe Idee war (der heart beat ist noch nicht ausformuliert, nur der thread kill):

    Code:
    void* WATCHER_thr(void*)           // very high priority:  thread watcher  
    { 
       while(_TASKS_ACTIVE_) {               
    
        // to do: UART_HEARTBEAT auswerten!
    
        if (!UART_HEARTBEAT) {  // delays sind nur grobe Ideen, als yield für andere threads!
           pthread_kill(thread2, SIGKILL); // does not erase handle!
           delay(10);  // zusätzlich weitere Wartebedingung für kill?
    
           pthread_join(thread2, NULL);  // join, erase handle
           delay(10);
    
           serialClose( Serial);  // close UART, fd=Serial
           delay(10);
           Serial = serialOpen (uart, UARTclock);    // re-open Serial
           delay(1);
      
           pthread_create(&thread2, NULL, UART_thr, NULL);    // restart UART by medium   
           param.sched_priority = 40;
           pthread_setschedparam(thread2, SCHED_RR, &param); 
    
           delay(10);
        }
         
        delay(100);  // long yield
    
       }         
       return NULL;
    }
    
    // andere treads siehe Link oben!
    
    //==================================================================
    //==================================================================
     
    int main() {
        
        // threads    
        pthread_t  thread0, thread1, thread2;
        struct     sched_param  param;
        
        printf("starting ..."); printf("\n");   
        
        // open UART Serial com port    
        Serial = serialOpen (uart, UARTclock);       
            
    
        // start multithreading  
        pthread_create(&thread0, NULL, WATCHER_thr, NULL);     // very high priority: thread watcher 
        param.sched_priority = 80;
        pthread_setschedparam(thread0, SCHED_RR, &param);
        
        pthread_create(&thread1, NULL, KBD_thr, NULL);     // low priority: keyboard monitor 
        param.sched_priority = 40;
        pthread_setschedparam(thread1, SCHED_RR, &param);
       
        pthread_create(&thread2, NULL, UART_thr, NULL);    // medium  priority: UART
        param.sched_priority = 40;
        pthread_setschedparam(thread2, SCHED_RR, &param);    
         
        
        while(_TASKS_ACTIVE_) { delay(10); }
         
        // wait for threads to join before exiting
        pthread_join(thread1, NULL);
        pthread_join(thread2, NULL);
        pthread_join(thread3, NULL);
       
        serialClose( Serial);
        exit(0);
    }
    Geändert von HaWe (17.06.2019 um 17:20 Uhr)

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 01.11.2017, 12:53
  2. Antworten: 2
    Letzter Beitrag: 15.06.2011, 21:18
  3. "Optimization" macht debuggen schwer
    Von yaro im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 05.02.2010, 20:40
  4. "Soft-Reset?" und "Finger-Interrupt?"
    Von trapperjohn im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 10.06.2008, 23:02
  5. ASM: was machen "swap" und "cbr" genau?
    Von RHS im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 18.08.2004, 17:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen