AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi SetProcessAffinityMask innerhalb einer DLL verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

SetProcessAffinityMask innerhalb einer DLL verwenden?

Ein Thema von DevidEspenschied · begonnen am 28. Feb 2017 · letzter Beitrag vom 2. Mär 2017
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: SetProcessAffinityMask innerhalb einer DLL verwenden?

  Alt 1. Mär 2017, 13:13
Das sieht für mich eher so aus, als würdest du ein Objekt/Speicher mehrfach freigeben. Eventuell eine Race-Condition?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: SetProcessAffinityMask innerhalb einer DLL verwenden?

  Alt 1. Mär 2017, 13:19
Bist du dir sicher, dass es an SetProcessAffinityMask liegt?
Hast du mal geschaut ob der Fehler auch auftaucht wenn du SetProcessAffinityMask nicht aufrufst?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
444 Beiträge
 
Delphi 12 Athens
 
#3

AW: SetProcessAffinityMask innerhalb einer DLL verwenden?

  Alt 2. Mär 2017, 13:13
Bist du dir sicher, dass es an SetProcessAffinityMask liegt?
Hast du mal geschaut ob der Fehler auch auftaucht wenn du SetProcessAffinityMask nicht aufrufst?
Habe ich nachgeprüft, es liegt nicht an SetProcessAffinityMask. Es liegt an der Erweiterung eines OpenArray-Parameters in einer DLL-Funktion (das hatte ich hier http://www.delphipraxis.net/191814-d...ml#post1362766) schon mal geschrieben.

Seltsamerweise funktioniert die Erweiterung des OpenArrays sonst wunderbar, nur in einem Codeabschnitt nicht (oder zumindest resultiert die OpenArray-Erweiterung in einer Access Violation, wenn ich das Programm beende).

Vom Prinzip ermittle ich die Anzahl logischer CPU-Kerne, setze nacheinander jeden einzelnen Kern als aktiv, führe einen bestimmten Lesebefehl durch, und springe zum nächsten Kern weiter. Meine CPU hat 8 logische Kerne, und wenn ich die Schleife auf 5 begrenze, funktioniert alles noch. Erst ab dem 6. Kern kommt diese Access Violation, die ich weiter oben beschrieben habe.
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: SetProcessAffinityMask innerhalb einer DLL verwenden?

  Alt 2. Mär 2017, 13:59
Wie schon gesagt, das klingt ziemlich stark nach einer Race-Condition.

Vom Prinzip ermittle ich die Anzahl logischer CPU-Kerne, setze nacheinander jeden einzelnen Kern als aktiv, führe einen bestimmten Lesebefehl durch, und springe zum nächsten Kern weiter. Meine CPU hat 8 logische Kerne, und wenn ich die Schleife auf 5 begrenze, funktioniert alles noch. Erst ab dem 6. Kern kommt diese Access Violation, die ich weiter oben beschrieben habe.
Hat das irgendeinen speziellen Grund, dass du nicht einfach direkt Threads verwendest?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz