Ctypes и alloc
В биндинге для Python libmapi (который я пишу, с использованием ctypes), возникла следующая задача: есть куски кода, где надо выделить память через вызовы talloc. Желательно, чтобы память сама освобождалась, когда переменная, в которой у меня указатель на эту структуру, исчезает.
Оказывается, в ctypes можно легко обернуть эти вызовы в свой класс и использовать обычный деструктор, чтобы это сделать. При этом, ctypes, чтобы получить внутреннее значение, просто берёт свойство «_as_parameter_» класса.
Получился вот такой код:
class mapi_talloc(object):
def __init__(self, lib):
self._lib = lib
self._as_parameter_ = lib.talloc_init('python-mapi-object:' + str(hash(self)))
def __del__(self):
self._lib.talloc_free(self._as_parameter_)Сток
С bash.org.ru:
AndyK: интересно, когда называют магазин «стоковым», им в голову приходит, что это для них сток — завалявшийся на коллокейшен мерчендайз, а для нормального человека — стоковые воды? в принципе, ассоциация верна — туда стекается все говно, нераспроданное в других магазинах Aliv: ты чтооо! это модное слово! стильные люди понимают его праавильнаа!
Для нормального человека… Ну, видимо, я не нормальный. Для меня «сток» это противоположность «истоку». Наверное, потому что я учился на ВМК. В математике «сток» — завершающее событие в сетевом графике, это из теории графов.