Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  pthreads.c

  Sprache: C
 

/*
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


/*
 * Note: This is not a real pthreads implementation. This is file provides
 * symbols to allow a single-threaded system to pretend to be pthreads
 * supporting, but sans the ability to actually spawn new threads for
 * compatibility with codebases which cannot be configured to not use
 * e.g. mutexes.
 *
 * If we add actual threads, we should switch to musl's implementation,
 * not fix this one.
 */


#include <sys/types.h>
#include <time.h>

/*
 * For musl, Trusty's libc, pthread_t is a unsigned long. There is only one
 * thread, so we provide the constant thread ID of USER_ASPACE_BASE - 1
 * Do not select 0 or -1, as both are used for "invalid thread" by some
 * applications.
 *
 * This value was selected to allow attempts to dereference this to be
 * guaranteed to fault.
 */

pthread_t pthread_self(void) {
    return (pthread_t)(USER_ASPACE_BASE - 1);
}

/* Perform a normal equality test to support invalid threads as input */
int pthread_equal(pthread_t t1, pthread_t t2) {
    return (int)(t1 == t2);
}

/*
 * There is only one thread, so treat locks as no-ops.
 * We could be slightly more correct by treating them as bools and spinning
 * forever, but since we have no way of re-entering the program to unlock
 * the lock, this could not be used for any useful purpose.
 */

int pthread_mutex_init(pthread_mutex_t* mutex,
                       const pthread_mutexattr_t* attr) {
    return 0;
}

int pthread_mutex_destroy(pthread_mutex_t* mutex) {
    return 0;
}

int pthread_mutex_lock(pthread_mutex_t* mutex) {
    return 0;
}

int pthread_mutex_trylock(pthread_mutex_t* mutex) {
    return 0;
}

int pthread_mutex_unlock(pthread_mutex_t* mutex) {
    return 0;
}

int pthread_cond_wait(pthread_cond_t* restrict cond,
                      pthread_mutex_t* restrict mutex) {
    return 0;
}

int pthread_cond_timedwait(pthread_cond_t* restrict cond,
                           pthread_mutex_t* restrict mutex,
                           const struct timespec* restrict abstime) {
    return 0;
}

int pthread_cond_broadcast(pthread_cond_t* cond) {
    return 0;
}

int pthread_cond_signal(pthread_cond_t* cond) {
    return 0;
}

int pthread_atfork(void (*prepare)(void),
                   void (*parent)(void),
                   void (*child)(void)) {
    return 0;
}

Messung V0.5 in Prozent
C=90 H=90 G=90

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-06-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik