Wpis z mikrobloga

funkcja mapuje pliki do pamięci (mmap) w pętla w pętli dla jakiś tam warunków, teraz chciałbym w przypadku jakiegoś niepowodzenia dodać odmapowanie (munmap) adresów które do tej pory udało się już stworzyć. Lepiej powtórzyć wszystkie pętle i warunki dla mmapa czy lepiej zrobić jakąś strukturę co będzie trzymała adresy i rozmiar i potem sobie przelecę munmapem po wszystkim co udało się zebrać. Pierwsza opcja powiela kod i średnio mi się podoba a druga to taki GC.

Jakie podejście powinno być w takim przypadku? Nie znalazłem w necie tego problemu albo źle zadaje pytanie do googla.

#ansic
  • 1
rozwiązałem to tak: w dokumentacji funkcji munmap() jest zapis: "It is not an error if the indicated range does not contain any mapped pages." także w przypadku błędu wykorzystałem to i lecę po wszystkich adresach z puli niezależnie w którym punkcie się wysypało. Także w moim przypadku nie musze zbierać adresów i rozmiarów które udało się mapować, przez co oszczędzam miejsce na prowizoryczny GC, tylko lecę po wszystkich adresach munmapem() nawet po