Hauptinhalt

Generieren und Aufrufen von Reentrant-Code

Generieren und Aufrufen von Reentrant-Code für Single- oder Multi-Threading-Umgebungen

Standardmäßig erstellt der generierte Code static-Variablen für Variablen, deren Größe den maximalen Stack-Auslastungswert überschreitet; dies wird in der Konfigurationsobjekt-Einstellung StackUsageMax gespeichert. Die Daten in den static-Variablen bleiben über Funktionsaufrufe hinweg bestehen. Ähnlich hierzu bleiben die Daten für globale und persistente MATLAB®-Elemente über Funktionsaufrufe hinweg bestehen. Wenn Ihre Hauptfunktion den generierten Code in mehreren Threads ausführt, können unbestimmte Wettlaufsituationen (Race Conditions) auftreten.

Um Code zu generieren, der sich besser für die simultane Ausführung in mehreren Threads eignet, können Sie die Konfigurationsoption MultiInstanceCode verwenden. Wenn Sie diese Option verwenden, wrappt der generierte Code Daten, die den lokalen Thread-Speicher womöglich überschreiten, in eine Strukturdefinition, damit Sie threadsicheren Speicher für diese Struktur zuweisen können. Änhlich hierzu wrappt der Codegenerator persistente und globale Daten in eine eigene Speicherstruktur. Dieser Speicher sollte nicht geteilt werden, Sie können jedoch einzelne Speicherabschnitte für die von einem Thread verwendeten Datenstrukturen zuweisen.

Themen

Grundlagen zu Reentrant-Code

Workflows