The P.I.P.S. System Call Adaptation Layer (SCAL) known as Backend uses its own private heap for storing objects in memory.
By using a private heap,
the SCAL retains complete control over usage of the heap
system wide resources are not allocated within the context of users' private and thread owned heaps
the SCAL is virtually out-of-memory protected; that is, if the client application exhausts its own heap, most P.I.P.S. APIs will continue to function correctly, for example, opening or closing file descriptors
there is no need for application EXE
s to explicitly clean up memory used by the SCAL prior to thread or process termination (this would be necessary to prevent UHEAP
macros from panicking). The explicit calling of cleanup APIs is especially unintuitive for open-source applications and it is not obvious when a native Symbian platform EXE
is using a STDDLL
.
The use of a private heap might not make P.I.P.S. very memory efficient but it makes it much more intuitive to the user and memory safe.
During low memory conditions, your P.I.P.S. application may crash at launch with an STDLIBS-INIT
panic. This indicates that the P.I.P.S. subsystem was unable to initialise its core components and cannot function. Hybrid applications may also encounter this panic, for the same reasons, when it invokes a P.I.P.S. API.